library(dplyr)
library(ggplot2)第6章のRコード
第6章 相関関係と因果関係
パッケージの読み込み
6.1 相関 \(\neq\) 因果
videodata <- readr::read_csv("video_game.csv")
videodata %>%
ggplot(aes(x = hours, y = grade)) +
geom_point()
videodata %>%
summarise(cor = cor(grade, hours)) # A tibble: 1 × 1
cor
<dbl>
1 -0.821
6.1.3 同時性
crimedata <- readr::read_csv("police_crime.csv")
crimedata %>%
ggplot(aes(x = police, y = crime)) +
geom_point()
crimedata %>%
summarise(cor = cor(police, crime))# A tibble: 1 × 1
cor
<dbl>
1 0.129
6.2 ルービンの因果モデル
6.2.2 平均トリートメント効果
set.seed(2022)
n <- 400
D <- rbinom(n, 1, 0.6) # 確率 0.6 で 1,確率 0.4 で 0 をとるトリートメント変数
TE <- 2 # トリートメント効果 = 2 で個人間の差は無いと想定
Y <- TE * D + rnorm(n) # 結果変数
EY1 <- sum(D * Y) / sum(D)
EY0 <- sum((1 - D) * Y) / sum(1 - D)
EY1 - EY0[1] 2.053911
Z <- runif(n) # D と Y に共通して影響を与える変数
D <- rbinom(n, 1, Z) # Z が大きいほど 1 をとりやすいトリートメント変数
Y <- TE * D + (2 * Z - 1) + rnorm(n)
EY1 <- sum(D * Y) / sum(D)
EY0 <- sum((1 - D) * Y) / sum(1 - D)
EY1 - EY0[1] 2.481898