set.seed(2022)
第7章のRコード
第7章 外生変数と内生変数
Rによるシミュレーション演習
乱数の設定
サンプルサイズとパラメータの設定
<- 200 # サンプルサイズ
n <- 1 # 切片の真の値
b0 <- 2 # 係数の真の値 b1
estimate()関数の定義
<- function(lambda){
estimate
<- rnorm(n) # 誤差項
e <- (1 + lambda * e) * runif(n) # 説明変数
X <- b0 + b1 * X + e # 被説明変数
Y
lm(Y ~ X)$coefficient
}
simulate()関数の定義
<- function(lambda){
simulate
<- matrix(0, 100, 2)
betahats
for(i in 1:100){
<- estimate(lambda)
betahats[i, ]
}
colMeans(betahats) # 行列betahatsの列ごとの平均値
}
シミュレーションの実施
<- (0:60) / 100
lambdas <- mapply(simulate, lambdas)
results
= results[1, ] - b0 # バイアス = 推定値 - 真の値
bias0 = results[2, ] - b1 bias1
バイアスと\(\lambda\)との関係
plot(lambdas, bias0,
xlab = "λの大きさ",
ylab = "バイアス")
plot(lambdas, bias1,
xlab = "λの大きさ",
ylab = "バイアス")