ルービンの因果モデル (rubin causal model)は潜在的結果と割当のメカニズムに着目して因果推論を検討するアプローチ(Rubin 1974 , Holland 1986 )。
潜在的結果 ¶ ある個体が「介入を受けた場合」と「介入を受けなかった場合」の結果を、実際に介入があったかどうかに関わらず定めたものを潜在的結果 (potential outcome)という。
対照群 (control group):介入を受けなかった(D = 0 D=0 D = 0 の)場合
処置群 (treatment group):介入を受けた(D = 1 D=1 D = 1 の)場合
個体i i i が介入を受けなかった時の潜在的結果:Y i ( 0 ) Y_i(0) Y i ( 0 )
個体i i i が介入を受けた時の潜在的結果:Y i ( 1 ) Y_i(1) Y i ( 1 )
実際の観察結果はY i Y_i Y i とする
Y i = { Y i ( 0 ) if D i = 0 Y i ( 1 ) if D i = 1 Y_i = \left\{
\begin{array}{l}
Y_i(0) \ \text{if } D_i = 0 \\
Y_i(1) \ \text{if } D_i=1
\end{array}
\right. Y i = { Y i ( 0 ) if D i = 0 Y i ( 1 ) if D i = 1 次のように書くこともできる
Y i = Y i ( D i ) = Y i ( 0 ) ( 1 − D i ) + Y i ( 1 ) D Y_i = Y_i(D_i) = Y_i(0)(1-D_i) + Y_i(1)D Y i = Y i ( D i ) = Y i ( 0 ) ( 1 − D i ) + Y i ( 1 ) D 因果効果 ¶ 因果の定義の仕方はいろいろあるが、ルービン因果モデルにおいては「ある個体が介入D D D を受けた場合に、受けなかった場合の結果Y Y Y と比べた結果Y 1 Y_1 Y 1 の差Y 1 − Y 0 Y_1 - Y_0 Y 1 − Y 0 」を「D D D の因果効果 (causal effect)」とする。なお、因果効果と同様の意味で処置効果 (treatment effect)という言葉も使われる。
個体i i i の因果効果(個体処置効果 individual treatment effect: ITE) は
τ i = Y i ( 1 ) − Y i ( 0 ) \tau_i = Y_i(1)-Y_i(0) τ i = Y i ( 1 ) − Y i ( 0 ) となる。
ただし、実際には実行された処置についての結果しか観測することができないため、τ i \tau_i τ i は観測することはできない。このことは因果推論の根本問題 と呼ばれる。
平均処置効果 ¶ ITEの推定は難しいため、通常は平均での処置効果を推定することを考える
τ = E [ Y ( 1 ) − Y ( 0 ) ] = E [ Y ( 1 ) ] − E [ Y ( 0 ) ] \tau = E[Y(1) - Y(0)] = E[Y(1)] - E[Y(0)] τ = E [ Y ( 1 ) − Y ( 0 )] = E [ Y ( 1 )] − E [ Y ( 0 )] これを平均処置効果 (average treatment effect: ATE)という。平均因果効果 (average causal effect: ACE)という呼び方や、母集団レベルの議論であることを明示した母集団平均処置効果 (population average treatment effect: PATE)という呼び方も存在する。
ATEの推定 ¶ ナイーブな推定量 ¶ 素朴に思いつく推定方法は、観測できた各群の結果の平均値の差
1 N 1 ∑ i : D i = 1 N 1 y i − 1 N 0 ∑ i : D i = 0 N 0 y i \frac{1}{N_1} \sum^{N_1}_{i: D_i = 1} y_i
-
\frac{1}{N_0} \sum^{N_0}_{i: D_i = 0} y_i N 1 1 i : D i = 1 ∑ N 1 y i − N 0 1 i : D i = 0 ∑ N 0 y i を使って推定するアプローチであろう。
これは潜在的結果を使って表すと
τ n a i v e = E [ Y ( 1 ) ∣ D = 1 ] − E [ Y ( 0 ) ∣ D = 0 ] \tau_{naive}
= E[Y(1)|D = 1] - E[Y(0)|D = 0] τ nai v e = E [ Y ( 1 ) ∣ D = 1 ] − E [ Y ( 0 ) ∣ D = 0 ] となり、ATEとは異なる。仮にこれをナイーブな推定量と呼ぶことにして、τ n a i v e \tau_{naive} τ nai v e と表す。
これはE [ Y ( 0 ) ∣ D = 1 ] E[Y(0)|D = 1] E [ Y ( 0 ) ∣ D = 1 ] を足して引くと
τ n a i v e = E [ Y ( 1 ) ∣ D = 1 ] − E [ Y ( 0 ) ∣ D = 0 ] = E [ Y ( 1 ) ∣ D = 1 ] − E [ Y ( 0 ) ∣ D = 1 ] + E [ Y ( 0 ) ∣ D = 1 ] − E [ Y ( 0 ) ∣ D = 0 ] = E [ Y ( 1 ) − Y ( 0 ) ∣ D = 1 ] ⏟ ATT + E [ Y ( 0 ) ∣ D = 1 ] − E [ Y ( 0 ) ∣ D = 0 ] ⏟ Selection Bias \begin{align}
\tau_{naive}
&= E[Y(1)|D = 1] - E[Y(0)|D = 0]\\
&= E[Y(1)|D = 1] - E[Y(0)|D = 1] + E[Y(0)|D = 1] - E[Y(0)|D = 0]\\
&= \underbrace{E[Y(1) - Y(0)|D = 1]}_{\text{ATT}}
+ \underbrace{E[Y(0)|D = 1] - E[Y(0)|D = 0]}_{\text{Selection Bias}}\\
\end{align} τ nai v e = E [ Y ( 1 ) ∣ D = 1 ] − E [ Y ( 0 ) ∣ D = 0 ] = E [ Y ( 1 ) ∣ D = 1 ] − E [ Y ( 0 ) ∣ D = 1 ] + E [ Y ( 0 ) ∣ D = 1 ] − E [ Y ( 0 ) ∣ D = 0 ] = ATT E [ Y ( 1 ) − Y ( 0 ) ∣ D = 1 ] + Selection Bias E [ Y ( 0 ) ∣ D = 1 ] − E [ Y ( 0 ) ∣ D = 0 ] と表すことができる。
第1項のE [ Y ( 1 ) − Y ( 0 ) ∣ D = 1 ] E[Y(1) - Y(0)|D = 1] E [ Y ( 1 ) − Y ( 0 ) ∣ D = 1 ] は処置群における「処置を受けたときの結果Y ( 0 ) Y(0) Y ( 0 ) 」と「処置を受けなかった場合の(反実仮想の)結果Y ( 0 ) Y(0) Y ( 0 ) 」の差である。これを処置群に対する平均処置効果 (average treatment effect on the treated: ATT or ATET)という。
処置群と対照群で平均的に処置効果に差がないと仮定すれば
E [ Y ( 1 ) − Y ( 0 ) ] ⏟ A T E = E [ Y ( 1 ) − Y ( 0 ) ∣ D = 1 ] P ( D = 1 ) + E [ Y ( 1 ) − Y ( 0 ) ∣ D = 0 ] P ( D = 0 ) = E [ Y ( 1 ) − Y ( 0 ) ∣ D = 1 ] { P ( D = 1 ) + P ( D = 0 ) } = E [ Y ( 1 ) − Y ( 0 ) ∣ D = 1 ] ⏟ A T T \begin{align}
\underbrace{E[Y(1) - Y(0)]}_{ATE}
&= E[Y(1) - Y(0) | D = 1] P(D = 1) + E[Y(1) - Y(0)| D = 0] P(D = 0)\\
&= E[Y(1) - Y(0) | D = 1] \{ P(D = 1) + P(D = 0) \}\\
&= \underbrace{E[Y(1) - Y(0)|D = 1]}_{ATT}
\end{align} A TE E [ Y ( 1 ) − Y ( 0 )] = E [ Y ( 1 ) − Y ( 0 ) ∣ D = 1 ] P ( D = 1 ) + E [ Y ( 1 ) − Y ( 0 ) ∣ D = 0 ] P ( D = 0 ) = E [ Y ( 1 ) − Y ( 0 ) ∣ D = 1 ] { P ( D = 1 ) + P ( D = 0 )} = A TT E [ Y ( 1 ) − Y ( 0 ) ∣ D = 1 ] となる。
第2項のE [ Y ( 0 ) ∣ D = 1 ] − E [ Y ( 0 ) ∣ D = 0 ] E[Y(0)|D = 1] - E[Y(0)|D = 0] E [ Y ( 0 ) ∣ D = 1 ] − E [ Y ( 0 ) ∣ D = 0 ] は、「処置群が仮に処置を受けなかったとした場合の結果の期待値」と「対照群が処置を受けなかった場合の期待値」の差であり、セレクション・バイアス (selection bias)と呼ばれる。
もしセレクション・バイアスが0であればτ n a i v e = A T T \tau_{naive} = ATT τ nai v e = A TT であり、さらにA T T = A T E ATT=ATE A TT = A TE であればτ n a i v e = A T E = τ \tau_{naive}= ATE = \tau τ nai v e = A TE = τ になる。そうでない場合はτ n a i v e ≠ τ \tau_{naive} \neq \tau τ nai v e = τ であり、単純な各群の期待値の差をとる方法は誤った分析結果を導くことになる。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
n = 1000
users = pd.DataFrame()
ate = 0.1 # 真の効果。成約率の増加分
p_target = 0.3 # DMの重点エリアの成約率
p_normal = 0.2 # それ以外のエリアの成約率
np.random.seed(0)
x_target = np.random.binomial(n=1, p=p_target + ate, size=n//2)
x_normal = np.random.binomial(n=1, p=p_normal, size=n//2)
print(f"""
観測した両群の成約率
avg[Y|D=1] = {x_target.mean():.2f}
avg[Y|D=0] = {x_normal.mean():.2f}
その差分
τ_naive = avg[Y|D=1] - avg[Y|D=0] = {x_target.mean() - x_normal.mean():.2f}
(反実仮想)対照群がもし処置を受けていなかったら
E[Y(0)|D=1] = {p_target:.2f}
""")
観測した両群の成約率
avg[Y|D=1] = 0.39
avg[Y|D=0] = 0.21
その差分
τ_naive = avg[Y|D=1] - avg[Y|D=0] = 0.18
(反実仮想)対照群がもし処置を受けていなかったら
E[Y(0)|D=1] = 0.30
font_settings = dict(horizontalalignment="center", fontweight="bold")
fig, ax = plt.subplots(dpi=100, figsize=[5, 3])
ax.bar(0, p_target, color="gray")
ax.text(0, p_target * 0.5, "E[Y(0)|D=1]", color="white", **font_settings)
ax.bar(0, ate, bottom=p_target, color="dimgray")
ax.text(0, p_target + ate * 0.45, "τ / ATE", color="white", **font_settings)
ax.bar(1, p_normal, color="darkgray")
ax.text(1, p_normal * 0.5, "E[Y(0)|D=0]", color="white", **font_settings)
ax.bar(1, (p_target - p_normal), bottom=p_normal, color="white", linestyle=":", edgecolor="tomato")
ax.text(1, p_normal + (p_target - p_normal) * 0.25, "selection bias\nE[Y(0)|D=1] - E[Y(0)|D=0]", color="tomato", **font_settings)
ax.set(
xticks=[0, 1],
xticklabels=["D=1", "D=0"],
ylabel="Y",
ylim=[0, 0.45],
)
fig.show()
from myst_nb import glue
glue("selection_bias_fig", fig, display=False)あるサービスの広告目的でDMを配布するとする。
このとき、あらかじめ(DM施策以前から)成約率が高いことがわかっているエリアのみに配布したらどうなるだろうか。
例えば、成約率の高いエリアはもともとの成約率が0.3で、実際に実験時点においてもE [ Y ( 0 ) ∣ D = 1 ] = 0.3 E[Y(0)|D=1] = 0.3 E [ Y ( 0 ) ∣ D = 1 ] = 0.3 だったとする
実際に観測されたのは
E [ Y ∣ D = 1 ] = 0.4 E [ Y ∣ D = 0 ] = 0.2 E[Y|D=1] = 0.4\\
E[Y|D=0] = 0.2 E [ Y ∣ D = 1 ] = 0.4 E [ Y ∣ D = 0 ] = 0.2 だったとする。
両者の差分τ n a i v e \tau_{naive} τ nai v e は0.4 − 0.2 = 0.2 0.4-0.2=0.2 0.4 − 0.2 = 0.2 となる。
しかし、DMが配布されたエリアはもともと成約率が高かったので、セレクション・バイアスE [ Y ( 0 ) ∣ D = 1 ] − E [ Y ( 0 ) ∣ D = 0 ] E[Y(0)|D=1] - E[Y(0)|D=0] E [ Y ( 0 ) ∣ D = 1 ] − E [ Y ( 0 ) ∣ D = 0 ] は0.3 − 0.2 = 0.1 0.3 - 0.2 = 0.1 0.3 − 0.2 = 0.1 となり、τ n a i v e \tau_{naive} τ nai v e は0.1だけ過大にATEを推定していることになる。
glue:figure - Unknown Directive
無作為割り当ての場合 ¶ もし処置の割当D D D が無作為(ランダム)であれば潜在的結果Y ( 0 ) , Y ( 1 ) Y(0), Y(1) Y ( 0 ) , Y ( 1 ) とは独立
( Y ( 0 ) , Y ( 1 ) ) ⊥ ⊥ D \newcommand{\indep}{\mathop{\hspace{0.1em} \perp\!\!\!\perp \hspace{0.1em}}}
(Y(0), Y(1)) \indep D ( Y ( 0 ) , Y ( 1 )) ⊥ ⊥ D となり
E [ Y ( 0 ) ∣ D = 0 ] = E [ Y ( 0 ) ] E [ Y ( 1 ) ∣ D = 1 ] = E [ Y ( 1 ) ] E[Y(0)| D = 0] = E[Y(0)]\\
E[Y(1)| D = 1] = E[Y(1)] E [ Y ( 0 ) ∣ D = 0 ] = E [ Y ( 0 )] E [ Y ( 1 ) ∣ D = 1 ] = E [ Y ( 1 )] になるため、ナイーブな推定量がATEの推定量となる。
独立のおさらい
2つの事象AとBが独立であるとき、Aが起こる確率はBが起こったという事象とは関係ないため、
P ( A ∣ B ) = P ( A ) P(A|B) = P(A) P ( A ∣ B ) = P ( A ) となる。
条件付き期待値も同様に
E [ A ∣ B ] = ∫ A × P ( A ∣ B ) d A = ∫ A × P ( A ) d A = E [ A ] \begin{align}
E[A|B]
&= \int A \times P(A|B) dA\\
&= \int A \times P(A) dA = E[A]
\end{align} E [ A ∣ B ] = ∫ A × P ( A ∣ B ) d A = ∫ A × P ( A ) d A = E [ A ] となる
回帰分析によるATE推定 ¶ 回帰分析は条件付き期待値E [ Y ∣ D , X ] E[Y|D, \boldsymbol{X}] E [ Y ∣ D , X ] を推定する方法であるため、二値変数の割当変数D ∈ { 0 , 1 } D\in \{0, 1\} D ∈ { 0 , 1 } を説明変数に含めた
Y = τ D + X β + ε Y = \tau D + \boldsymbol{X \beta} + \varepsilon Y = τ D + Xβ + ε では回帰係数τ \tau τ は切片の違いすなわち両群の平均の差を表現しているため、τ \tau τ をATEの推定値と解釈することができる。
識別可能性 ¶ 識別可能性(identifiability) とは、データから母数が一意に推定可能であること。
識別可能性をもつためには、2つの条件を満たす必要がある
例えば二値変数のD ∈ { 0 , 1 } D\in\{0,1\} D ∈ { 0 , 1 } のとき、
E [ Y ∣ D = 0 ] = E [ Y ( 0 ) ∣ D ] = E [ Y ( 0 ) ] E [ Y ∣ D = 1 ] = E [ Y ( 1 ) ∣ D ] = E [ Y ( 1 ) ] E[Y \mid D=0] = E[Y(0) \mid D] = E[Y(0)]\\
E[Y \mid D=1] = E[Y(1) \mid D] = E[Y(1)] E [ Y ∣ D = 0 ] = E [ Y ( 0 ) ∣ D ] = E [ Y ( 0 )] E [ Y ∣ D = 1 ] = E [ Y ( 1 ) ∣ D ] = E [ Y ( 1 )] となるため、観測できない潜在的結果E [ Y ( 0 ) ] , E [ Y ( 1 ) ] E[Y(0)],E[Y(1)] E [ Y ( 0 )] , E [ Y ( 1 )] が観測可能なE [ Y ∣ D = 0 ] , E [ Y ∣ D = 1 ] E[Y \mid D=0], E[Y \mid D=1] E [ Y ∣ D = 0 ] , E [ Y ∣ D = 1 ] の推定値で推定可能となる
E [ Y ∣ D = 1 ] − E [ Y ∣ D = 0 ] = E [ Y ( 1 ) ] − E [ Y ( 0 ) ] = A T E E[Y \mid D=1] - E[Y \mid D=0]
= E[Y(1)] - E[Y(0)]
= ATE E [ Y ∣ D = 1 ] − E [ Y ∣ D = 0 ] = E [ Y ( 1 )] − E [ Y ( 0 )] = A TE 強く無視できる割り当て条件 ¶ 共変量X \boldsymbol{X} X を条件付けた下での処置割当D D D と結果Y ( 0 ) , Y ( 1 ) Y(0), Y(1) Y ( 0 ) , Y ( 1 ) の独立
( Y ( 0 ) , Y ( 1 ) ) ⊥ ⊥ D ∣ X \newcommand{\indep}{\mathop{\hspace{0.1em} \perp\!\!\!\perp \hspace{0.1em}}}
(Y(0), Y(1)) \indep D | \boldsymbol{X} ( Y ( 0 ) , Y ( 1 )) ⊥ ⊥ D ∣ X を
と呼ぶ。
This leads to the conditional independence assumption (CIA), a core assumption that provides the (sometimes implicit) justiÖcation for the causal interpretation of regression.
This assumption is sometimes called selection-on-observables because the covariates to be held fixed are assumed to be known and observed (e.g., in Goldberger, 1972; Barnow,
Cain, and Goldberger, 1981)
Angrist & Pischke (2009). Mostly Harmless Econometrics(Princeton Univ. Press), p39.
強く無視できる割当条件が成立するとき、平均での独立性 (mean independence)
E [ Y ∣ D = 0 , X ] = E [ Y ( 0 ) ∣ D , X ] = E [ Y ( 0 ) ∣ X ] E [ Y ∣ D = 1 , X ] = E [ Y ( 1 ) ∣ D , X ] = E [ Y ( 1 ) ∣ X ] E[Y|D=0, \boldsymbol{X}] = E[Y(0)|D, \boldsymbol{X}] = E[Y(0)|\boldsymbol{X}]\\
E[Y|D=1, \boldsymbol{X}] = E[Y(1)|D, \boldsymbol{X}] = E[Y(1)|\boldsymbol{X}] E [ Y ∣ D = 0 , X ] = E [ Y ( 0 ) ∣ D , X ] = E [ Y ( 0 ) ∣ X ] E [ Y ∣ D = 1 , X ] = E [ Y ( 1 ) ∣ D , X ] = E [ Y ( 1 ) ∣ X ] が成立する。
そこから共変量について期待値をとればATEが推定できる
E X [ E [ Y ( 1 ) − Y ( 0 ) ∣ X ] ] = E [ Y ( 1 ) − Y ( 0 ) ] = A T E E_{\boldsymbol{X}} [ E[Y(1) - Y(0)|\boldsymbol{X}] ] = E[Y(1) - Y(0)] = ATE E X [ E [ Y ( 1 ) − Y ( 0 ) ∣ X ]] = E [ Y ( 1 ) − Y ( 0 )] = A TE SUTVA条件 ¶ 個体i i i の潜在的結果Y i ( 1 ) , Y i ( 0 ) Y_i(1), Y_i(0) Y i ( 1 ) , Y i ( 0 ) が次の2つの条件を満たすとき、SUTVA (stable unit treatment value assumption)条件を満たすという(Rubin 1980)。
個体i i i の潜在的結果は、他の個体が受ける処置の値に依存しない
個体i i i に対する処置は1通りに定まる
条件1について ¶ 条件1は相互干渉がない(no interference)という言い方もされる(Cox 1958)。
相互干渉がある場合、個体i i i の潜在的結果は個体i i i の処置D i D_i D i だけでは定まらず、Y i ( D 1 , ⋯ , D n ) Y_i(D_1, \cdots, D_n) Y i ( D 1 , ⋯ , D n ) のように書く必要が出てきてかなり複雑になる。
そのため、条件1は潜在的結果をシンプルに扱うための条件となる。
しかし現実には相互干渉が発生しうる。例えば労働者への教育プログラムの効果を推定する際には、他にもそのプログラムを受けて技能を向上させた労働者が多く現れる場合、労働市場における希少価値は低下し、結果として個体i i i の潜在的結果に影響を与えると考えられる。
条件2について ¶ 条件2は処置の内容を明確にすることを要請している。
例えば「ダイエットをする」という処置では、具体的に何をしたのかが人によって大きく異なる可能性がある。