Rで何かをしたり、読書をするブログ

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

都道府県別の道路平均交通量の分析7 - 重回帰分析をして、F検定で複数の変数の統計的有意性を検定した。

(Bing Image Creator で生成: プロンプト: Landscape photo of various type of tulip flowers, photo)

www.crosshyou.info

の続きです。

今回は、pop1000: 人口に加えて、いろいろな説明変数を加えたモデルを考えてみます。まず、inc: 1人当たり県民所得【千円】を説明変数に加えたモデルを考えます。

inc の係数は -0.7209 でした。p値は0.32707なので、統計的に有意な係数ではないようです。pop1000の係数は 1.8133でした。p値はゼロに近いので、統計的に有意な係数です。incが同じならば、人口が1000人増えると、道路平均交通量は1.81台増える、という解釈ですね。

こんどは、2015年度の交通量を説明変数に追加してみます。はじめに2015年度の交通量を2020年のデータフレームに追加します。

kotsu2015も説明変数に加えてみます。

kotsu2015の係数は0.97866でp値はほとんどゼロです。pop1000, incの両方のp値は0.05以上なので、どちらも統計的に有意ではなくなりました。

ここで、pop1000とincの両方が統計的に有意かどうかを検定してみたいと思います。

Jeffrey M. WooldridgeのIntroductory Econometrics A Modern Approace 7eの139ページ目にある、4-5 Testing Multiple Linear Restrictions: The F-Testのところを参考にしました。

kotsu2015だけのモデルをrestricted model, pop1000, inc, kotsu2015のモデルをunrestricted modelと呼んで、それぞれのモデルを推定します。

そして、それぞれのSSR(residual sum of squares)を計算します。

n は観測数なので、47, kはunrestricted modelの説明変数の数なので、3、qは2です。

これで、F値を求めることができます。

F値が求められたら、pf()関数でp値がわかります。

p値が0.3665 と 0.05よりもかなり大きい数字です。つまり、H0: pop1000の係数 = 0, incの係数 = 0 という帰無仮説を棄却できません。

わざわざF値と計算しなくても、anova()関数で簡単にわかります。

今回は以上です。

次回は

www.crosshyou.info

です。

 

初めから読むには、

www.crosshyou.info

です。

今回のコードは以下になります。

#
# inc: 1人当たり県民所得【千円】を加えてモデル
model_multi <- lm(kotsu ~ pop1000 + inc, data = df_2020)
summary(model_multi)
#
# df_2020に2015年度のkotsuを追加する
df_2020 <- df_2020 |> 
  mutate(kotsu2015 = df_2015$kotsu)
#
# inc, kotsu2015も加えたモデル
model_multi2 <- lm(kotsu ~ pop1000 + inc + kotsu2015, data = df_2020)
summary(model_multi2)
#
# restricted model
model_r <- lm(kotsu ~ kotsu2015, data = df_2020)
#
# unrestricted model
model_ur <- lm(kotsu ~ kotsu2015 + pop1000 + inc, data = df_2020)
#
# restricted modelのSSR
SSR_r <- sum(resid(model_r)^2)
#
# unrestricted modelのSSR
SSR_ur <- sum(resid(model_ur)^2)
#
# n, k, q を定義
n <- 47
k <- 3
q <- 2
#
# F値を求める
F <- *1
F
#
# p値
1 - pf(F, q, n - k - 1)
#
# anova()
anova(model_ur, model_r)
#

 

 

 

*1:SSR_r - SSR_ur) / q) / (SSR_ur / (n - k - 1