第7章のRコード

第7章 外生変数と内生変数

Rによるシミュレーション演習

乱数の設定

set.seed(2022)

サンプルサイズとパラメータの設定

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 = "バイアス")