library(dplyr)
library(ggplot2)
第6章のRコード
第6章 相関関係と因果関係
パッケージの読み込み
6.1 相関 \(\neq\) 因果
<- readr::read_csv("video_game.csv")
videodata
%>%
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 同時性
<- readr::read_csv("police_crime.csv")
crimedata
%>%
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)
<- 400
n <- rbinom(n, 1, 0.6) # 確率 0.6 で 1,確率 0.4 で 0 をとるトリートメント変数
D <- 2 # トリートメント効果 = 2 で個人間の差は無いと想定
TE <- TE * D + rnorm(n) # 結果変数
Y
<- sum(D * Y) / sum(D)
EY1 <- sum((1 - D) * Y) / sum(1 - D)
EY0 - EY0 EY1
[1] 2.053911
<- runif(n) # D と Y に共通して影響を与える変数
Z <- rbinom(n, 1, Z) # Z が大きいほど 1 をとりやすいトリートメント変数
D <- TE * D + (2 * Z - 1) + rnorm(n)
Y
<- sum(D * Y) / sum(D)
EY1 <- sum((1 - D) * Y) / sum(1 - D)
EY0 - EY0 EY1
[1] 2.481898