第5章: 重回帰分析:OLS漸近特性

Jeffrey Wooldridge (2016).
Introductory Econometrics: A Modern Approach
Seventh Edition. Cengage Learning.

2026-01-23

準備

必要なパッケージの読み込み

library(wooldridge)

5-1 一致性 (Consistency)

標本数と推定量

OLS推定量の一致性

\[ \text{plim}(\hat{\beta}_j) = \beta_j \]

不偏性と一致性の違い

5-2 漸近正規性と大規模標本での推論

漸近正規性 (Asymptotic Normality)

\[ \sqrt{n}(\hat{\beta}_j - \beta_j) \xrightarrow{d} \text{Normal}(0, \sigma^2 / a_j^2) \]

実証分析における含意

5-3 Rによるシミュレーション

正規分布でない誤差項を持つモデル

set.seed(123)
n_sim <- 1000  # シミュレーション回数
beta1_estimates <- numeric(n_sim)
n <- 500       # サンプルサイズ(比較的大きい)

for(i in 1:n_sim){
  x <- rnorm(n)
  u <- runif(n, min = -sqrt(3), max = sqrt(3)) # 非正規
  y <- 1 + 2 * x + u
  beta1_estimates[i] <- coef(lm(y ~ x))[2]
}

推定量の分布の確認

# ヒストグラムと正規分布曲線の重ね書き
hist(beta1_estimates, probability = TRUE, 
     main = "Distribution of OLS Estimator (n=500)",
     xlab = "Estimated Beta1")
curve(dnorm(x, mean = 2, sd = sd(beta1_estimates)), 
      add = TRUE, col = "red", lwd = 2)

5-4 大規模標本でのラグランジュ乗数検定 (LM検定)

LM検定 (Lagrange Multiplier Statistic)

LM検定の手順

  1. 制約付きモデル(\(H_0\) を課したモデル)を推定し、残差 \(\tilde{u}\) を保存する。
  2. 残差 \(\tilde{u}\) を、制約なしモデルのすべての独立変数で回帰する(補助回帰)。
  3. この補助回帰の決定係数 \(R^2_{\tilde{u}}\) を取得する。
  4. \(LM = n \cdot R^2_{\tilde{u}}\) を計算する。
  5. 自由度 \(q\) のカイ二乗分布と比較してp値を求める。

LM検定の例 (crime1)

data(crime1)
n <- nrow(crime1)
# 1. 制約付きモデル(刑罰変数なし)
model_r <- lm(narr86 ~ pcnv + ptime86 + qemp86, 
              data = crime1)
u_tilde <- resid(model_r)

# 2. 補助回帰(残差をすべての変数で回帰)
# avgsen, tottime を追加
model_aux <- lm(u_tilde ~ pcnv + ptime86 + qemp86 + 
                avgsen + tottime, data = crime1)

Restricted Model Auxiliary Regression
(Intercept) 0.712*** -0.006
(0.033) (0.033)
pcnv -0.150*** -0.001
(0.041) (0.041)
ptime86 -0.034*** -0.005
(0.009) (0.009)
qemp86 -0.104*** 0.001
(0.010) (0.010)
avgsen -0.007
(0.012)
tottime 0.012
(0.010)
R2 0.041 0.001
R2 Adj. 0.040 -0.000
RMSE 0.84 0.84

+=============+==================+======================+ | + p < 0.1, * p < 0.05, ** p < 0.01, *** p < 0.001 | +=============+==================+======================+

LM検定の計算

# 3 & 4. LM統計量の計算
lm_stat <- n * summary(model_aux)$r.squared
lm_stat
## [1] 4.070729

LM検定の判定

# 5. p値の計算 (自由度 q = 2)
p_value <- 1 - pchisq(lm_stat, df = 2)
p_value
## [1] 0.1306328

まとめ

まとめ