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