(Bing Image Creator で生成: プロンプト: Landscape scenery of flowering Dahila, background is blue sky and beautiful liver, photo)
の続きです。
今回は、回帰分析では欠かせない Heteroskedasticity のチェックをします。
2020年度のkotsuを2015年度の交通で回帰するモデルを考えます。
この回帰モデルの残差の2乗をu_sqという名前で保存します。
このu_sqがkotsu2015と関連していたら、Heteroskedasticityということです。
kotsu2015の係数は5.380で、p値は0.000237となっています。つまり、kotsu2015が大きいほどu_sqも大きい、つまり、kotsu2015が大きいほど残差の分散も大きい、ということなので、明らかにHeteroskedasticityがあります。
なので、kotsu = beta0 + beta1 * kotsu2015 + u をOLS(Ordinary Least Squares)で推定するより、WLS(Weighted Least Squares)で推定したほうがいいとなります。
Wooldridge の Introductory Econometrics A Modern Approace 7e
の 8-4b The Heteroskedasticity Function Must Be Estimated:Feasible GLS のセクションにその方法が書かれています。
ステップ1は、kotsu ~ kotsu2015をOLSで推定してその残差を保存します。
ステップ2は、その残差の2乗の対数を計算します。
ステップ3は、ステップ2の残差の2乗の対数をkotsu2015で回帰します。そしてその回帰モデルの予測値をgとして保存します。
ステップ4は、gをexp()関数で処理します。そしてそれをhとします。
ステップ5は、kotsu ~ kotsu2015を (1 / h)でウェイトをつけて回帰分析です。
kotsu = -130 + 0.981 * kotsu2015 + u という回帰式が推定できました。
今回は以上です。
初めから読むには、
です。
今回のコードは以下になります。
#
# kotsu ~ kotsu2015のモデル
model_8 <- lm(kotsu ~ kotsu2015, data = df_2020)
summary(model_8)
#
# model_8のu^2を定義
u_sq <- resid(model_8)^2
#
# u_sq ~ kotsu2015のモデル
model_usq <- lm(u_sq ~ kotsu2015, data = df_2020)
summary(model_usq)
#
# Heteroskedasticityがあるので、A Feasible GLS
# Step 1 kotsu ~ kots2015をOLSで推定して、残差を保存
u_hat <- resid(lm(kotsu ~ kotsu2015, data = df_2020))
#
# Step 2 u_hatを2乗して対数にする
log_u_hat_sq <- log(u_hat^2)
#
# Step 3 log_u_hat_sq を kotsu2015で回帰分析して、予測値をgとする
g <- fitted(lm(log_u_hat_sq ~ kotsu2015, data = df_2020))
#
# Step 4 gをexp()で処理
h <- exp(g)
#
# Step 5 kotsu ~ kotsu2015を 1/ h でウェイトして推定
model_gls <- lm(kotsu ~ kotsu2015, data = df_2020, weights = 1 / h)
summary(model_gls)
#