多重共線性の話 〜その3 一般的な問題点 [データサイエンス、統計モデル]
実験3: 実験2のデータを1000回発生させ、回帰分析を行う
x1とx2の回帰係数に強い負の相関がある(x1, x2が正の相関であるため)
x1とx2の平均は、おおむね正しい結果となっている
x1とx2の回帰係数に強い負の相関がある(x1, x2が正の相関であるため)
x1とx2の平均は、おおむね正しい結果となっている
## シミュレーション
# 多重共線性が起こっているデータ
para <- matrix(0, nrow=1000, ncol=4, byrow = T)
colnames(para) <- c("Intercept", "x1", "x2", "x3")
for (i in 1:1000) {
x1 <- rnorm(N)
x2 <- x1 + 0.4*rnorm(N)
x3 <- rnorm(N)
e <- rnorm(N)
y <- 1000 + 100*x1 + 80*x2 + 60*x3 + 100*e
df.2 <- data.frame(x1, x2, x3, e, y)
model_lm2 <- lm(y~x1+x2+x3, data=df.2)
para[i,1] <- model_lm2$coefficients[1]
para[i,2] <- model_lm2$coefficients[2]
para[i,3] <- model_lm2$coefficients[3]
para[i,4] <- model_lm2$coefficients[4]
}
> summary(para)
Intercept x1 x2 x3
Min. : 982.7 Min. : 52.87 Min. : 35.02 Min. :38.31
1st Qu.: 995.8 1st Qu.: 89.81 1st Qu.: 69.83 1st Qu.:56.61
Median :1000.1 Median :100.46 Median : 79.96 Median :60.07
Mean : 999.9 Mean :100.64 Mean : 79.45 Mean :60.07
3rd Qu.:1003.7 3rd Qu.:111.33 3rd Qu.: 89.68 3rd Qu.:63.94
Max. :1021.0 Max. :145.30 Max. :126.07 Max. :77.15
コメント 0