📌

【Juliaで因果推論】Potential Outcomes (潜在的結果変数)

2022/06/01に公開
  • 分析対象のアウトカムYには2つのpotential outcomes \{Y^0, Y^1\}が想定できるが,現実のデータでは片方のみしか観測されない.
  • 分析で知りたい因果効果は平均的な処置効果(ATE, ATT),ナイーブな引き算(E[Y|D=1]-E[Y|D=0])で因果効果を求めてもselection biasが残るので因果効果を正しく推定できない.
  • CIA: \{Y^0, Y^1\} \perp D | Xが成り立つとき,selection biasは消える.
  • potential outcomesのフレームワークを使ってselection biasがない理想的な状況(CIA)を思い描くことで,必要な分析のデザインが見えてくる.

私たちが答えの知りたい因果関係の"問い"にはいくつかのパターンがありますが[1],ここではまず,「もし〇〇したらYはどう変わるか?()」という問いに着目します[2].説明変数は「〇〇する or しない」の2択だけとなるので,バイナリーなダミー変数D = {0, 1}[3]で表現します.このような説明変数は処置(treatment) [4]と呼ばれることが多く,D=1なら処置を受けたことを意味し,D=0なら処置を受けなかったことを意味します.分析の目的は処置をすることによるYへの因果効果,処置効果(treatment effect) を求めることです.

さて,因果効果に迫るためには,「他の条件を一定にしたとき」という考えが重要でした.他の条件を一定を回帰分析の言葉で言うと,「観測されないYの決定要因Uは興味のある説明変数"D"と関係ない(独立[5])」ということになります.説明変数Dと誤差項Uが独立な状況を作り出すには,「処置Dを"ランダム"[6]に個人に割り当てる(assign)」が一番手っ取り早い方法です[7].ランダムに処置を割り振ってデータを集めるのは,現実社会では基本的に不可能です[8].しかし,「もしランダムに割り振れたら」と考えること自体は,因果推論の分析のデザインを考える上で重要です.適切な因果効果を得るための分析のデザインを議論する際,ある一定フレームワークに基づいて手元の数式で扱えるようにすれば便利です.今回はそのフレームワーク(数式での表し方・ノーテーション)について紹介します.

Potential Outcomes

What-if な因果関係について考えるときに有用なフレームワークがPotential Outcomes (Splawa-Neyman 1923; D. Rubin 1974)[9]です.このフレームワークでは,各サンプルそれぞれに対して,処置を受けたときの潜在的なアウトカムY_i^1と,処置を受けなかったときの潜在的なアウトカムY_i^0が存在すると想定します.

Potential outcome notations:

\begin{align*} Y_i^1 &: 個人 i \text{が処置を受けたときのpotential outcome} \\ Y_i^0 &: 個人 i \text{が処置を受けなかったときのpotential outcome} \\ Y_i &: \text{観測される個人} i \text{の"実際の"アウトカム} \\ \end{align*}

イメージとしては,個人iに対し,まず処置を受けさせたらアウトカムY_i^1が得られるとします.時間を巻き戻して,全く同じ個人iに対し,次は処置を受けさせなせなかった場合,今度はアウトカムY_i^0が得られるということを想定しています.もしくは2つの平行世界があったとして,全く同じ個人iに対して,1つの世界では処置を受けさせ,もう1つの世界では処置を受けさせないと考えてもいいでしょう.ポイントは,(時間巻き戻しだろうと平行世界だろうと)全く同じ個人iについて処置の有無をアサインしているので,処置以外の要素は全て一定となっていることです.従って,個人iの処置の因果効果(unit specific treatment)\delta_i[10]は単純なY_i^1Y_i^0の引き算で求まります.

\delta_i = Y_i^1 - Y_i^0

両方のpotential outcomesが分かれば,因果効果はあっさり求まります.ただし,これは2つの平行世界があればの話です[11].現実では片方のpotential outcomeだけしか観測されません.それでもむりやりpotential outcomesの表記を用いて実際に観測されるアウトカムY_iを表すと,次のようなスイッチの式(switching equation)となります.

Y_i = D_i Y_i^1 + (1 - D_i) Y_i^0

D_i=1(処置を受けた)を代入するとY_i|_{D_i=1} = 1 \times Y_i^1 + (1 - 1) Y_i^0 = Y_i^1D_i=0(処置を受けなかった)を代入するとY_i|_{D_i=0} = 0 \times Y_i^1 + (1 - 0) Y_i^0 = Y_i^0となっており,うまい具合に観測されるY_iD_iというスイッチを介してpotential outcomeの表記で表現していることが分かります.このように片方potential outcomeしか観測されない現実のデータを両方のpotential outcomesでもれなく表現することは,後に因果モデルをデザイン・導出するときの良い取っ掛かりとなります.

ATE, ATT, ATU

さて,各サンプルiごとの処置効果\delta_iをpotential outcomesで表記できましたが,通常,unit-specificな処置効果が直接的な分析の興味となることは少ないです.ここでも分析者は母集団(の分布)における関係,具体的には平均処置効果 (Average Treatment Effect: ATE) が興味のあるパラメータとなります.そこで,\delta_iの母集団平均(期待値)をとります.

Average Treatment Effect:

\begin{align*} ATE &= E[\delta_i] \\ &= E[Y_i^1 - Y_i^0] \\ &= E[Y_i^1] - E[Y_i^0] \end{align*}

ここでも,unit specificな処置効果と同様,各サンプルそれぞれに対して両方のpotential outcomes\{Y^0, Y^1\}が観測されていないと,ATEは直接計算できません.ただし,推定することはできます.どう推定すればいいかを考えるためにPotential Outcomesの表記を使っているのです.

分析の興味の対象が全母集団ではなく,処置を施したグループ(処置群, treatment group)だけの場合もよくあります[12].処置群の平均処置効果(Average Treatment effect on Treated: ATT)は次のようになります.

Average Treatment effect for Treatment group:

\begin{align*} ATT &= E[\delta_i | D_i = 1] \\ &= E[Y_i^1 - Y_i^0 | D_i = 1] \\ &= \underbrace{E[Y_i^1 | D_i = 1]}_{\text{factual}} - \underbrace{E[Y_i^0 | D_i = 1]}_{\text{counterfactual}} \end{align*}

ATEとの違いは,条件D_i=1がついていることです.よってATTは処置群という母集団の一部(D_i=1)に対する"localな"処置効果と言えます.potential outcomesで表記されたATTの式を見てみると,1つ目の項E[Y_i^1 | D_i = 1]は「処置を受けた(D_i = 1)unit iの,処置を受けた場合のアウトカム(Y_i^1)の母集団平均」であり,サンプルから推測できるので問題はありません.一方,2つめの項E[Y_i^0 | D_i = 1]は奇妙な部分です.これは「処置を受けた(D_i = 1)unit iの,処置を受けなった場合のアウトカム(Y_i^0)の母集団平均」を意味し,データとして観測されません.このように,処置とアウトカムがあべこべで,実際に存在しないような平行世界の部分を反事実(counterfactual)といいます.conterfactualはデータからは計算できません.よってATTATEと同様,各unit iごとに2つのpotential outcomesが手元にないと計算できないため,推定して得るパラメータです.

また,ATE, ATTほどでメジャーではないですが,「処置を施さなかったグループ(対照群, untreatment group, control group)」に対して,仮に処置したときの処置効果(Average Treatment effect on Untreated: ATU)[13]についても知ることができます.ATU\delta_iに条件D_i = 0を付けた期待値です.

Average Treatment effect for control group (Untreated group):

\begin{align*} ATU &= E[\delta_i | D_i = 0] \\ &= E[Y_i^1 - Y_i^0 | D_i = 0] \\ &= \underbrace{E[Y_i^1 | D_i = 0]}_{\text{counterfactual}} - \underbrace{E[Y_i^0 | D_i = 0]}_{\text{factual}} \end{align*}

ATTとは変わって,1項目が「処置を受けなかった(D_i = 0)unit iの,処置を受けなた場合のアウトカム(Y_i^1)の母集団平均」でcounterfactual,2項目が「処置を受けなかった(D_i = 0)unit iの,処置を受けなった場合のアウトカム(Y_i^0)の母集団平均」で観測される部分です.ATUもデータからは直接求めることはできません.

ちなみに通常,unit iごとに処置効果は異なる(heterogeneous treatment effect)と考えるのが自然なので,ATE \neq ATT \neq ATUです[14]

Simple Difference in mean Outcomes

それでは,Potential Outcomesフレームワークを学ぶ最大の理由,推定方法の議論をしてみましょう.

ここまでかなり抽象的だったので,ここからは具体的な例を使います.がんの手術によって余命がどのくらい伸びるかを考えます.unit iはがん患者,処置D_iは手術をするかしないかであり,D_i=1であれば「手術をする」,D_i=0であれば「手術をしない」です.興味のアウトカムは余命Y_i年であり,そのpotential outcomesはY^1_i(患者iが手術をした場合の余命)とY^0_i(患者iが手術をしなかった場合の余命)で表します.例なので仮にpotential outcomesの両方を知っているとすると,以下のような表が書けます.

using DataFrames

# if we know both of potential outcome values
df_potential = DataFrame()
df_potential.Y1 = [7, 5, 5, 7, 4, 10, 1, 5, 3, 9]
df_potential.Y0 = [1, 6, 1, 8, 2, 1, 10, 6, 7, 8]
df_potential.δ = df_potential.Y1 - df_potential.Y0

print(df_potential)

# 10×3 DataFrame
#  Row │ Y1     Y0     δ     
#      │ Int64  Int64  Int64 
# ─────┼─────────────────────
#    1 │     7      1      6
#    2 │     5      6     -1
#    3 │     5      1      4
#    4 │     7      8     -1
#    5 │     4      2      2
#    6 │    10      1      9
#    7 │     1     10     -9
#    8 │     5      6     -1
#    9 │     3      7     -4
#   10 │     9      8      1

自分で用意した仮想的なデータなので全て知った状態です.両方のpotential outcomesは手元にあり,unit specificな処置効果\delta_iが計算できます.また,分析の興味の対象となるATE=E[Y_i^1] - E[Y_i^0]の真の値も計算できます.

using Statistics

# we know true ATE
ate_true = mean(df_potential.Y1) - mean(df_potential.Y0) # # E[Y1] - E[Y0]

# 0.6

平均的にはATE = 0.6年伸びますが,\delta列を見ると患者ごとに処置効果は異なります(heterogenious treatment effect).中には手術をすることでかえって余命が短くなる患者もいます.ここで,仮に「各患者のpotential outcomesを完全に知っている」スーパードクターが患者の余命を最大化させるように処置を決めるとします.言い換えると,手術の「unit specificな処置効果(Y^1-Y^0=\delta_i)が最大化されるように,potential outcomes(\{Y^1, Y^0\})に依存して処置(D_i)を決めている」ことになります[15]

# treatments assigned to the patient with longer post-treatment outcome. (chosen by "perfect docter")

df_potential.D = [1, 0, 1, 0, 1, 1, 0, 0, 0, 1] # "perfect docter" treatment assignment

print(df_potential)

# 10×4 DataFrame
#  Row │ Y1     Y0     δ      D     
#      │ Int64  Int64  Int64  Int64 
# ─────┼────────────────────────────
#    1 │     7      1      6      1
#    2 │     5      6     -1      0
#    3 │     5      1      4      1
#    4 │     7      8     -1      0
#    5 │     4      2      2      1
#    6 │    10      1      9      1
#    7 │     1     10     -9      0
#    8 │     5      6     -1      0
#    9 │     3      7     -4      0
#   10 │     9      8      1      1

処置が割り振られたので,ATT, ATUの真の値も確認できます.

# we know true ATT, ATU
att_true = mean(df_potential[df_potential.D .== 1, :Y1]) - mean(df_potential[df_potential.D .== 1, :Y0]) # E[Y1 | D=1] - E[Y0 | D=1]
atu_true = mean(df_potential[df_potential.D .== 0, :Y1]) - mean(df_potential[df_potential.D .== 0, :Y0]) # E[Y1 | D=0] - E[Y0 | D=0]

print(att_true, "\n")
# 4.4
print(atu_true, "\n")
# 3.2

手術をした処置群の真の処置効果ATTは「平均4.4年伸びる」, 手術をしなかった対照群の真の処置効果ATUは「平均3.2年縮まる」です.この効果の違いはHeteroginious treatment effectによるものです.ちなみに,処置群と対照群を合わせると母集団全体となるので,ATEATTATUの加重平均(weighted average)として表すこともできます.

ATE = \pi ATT + (1-\pi) ATU

\piは処置を受けた患者の割合,1-\piは処置を受けなかった患者の割合です.

これで真の値は確認できました.しかし,現実のデータにはpotential outcomesはありません.手術をアサインし,その後の患者の余命を観察すると,私たちが手元のデータとして得られるのは以下の表です.

# but we don't ever know both potential outcomes, we can only observe one of the realized factual.
df = DataFrame()
df.D = [1, 0, 1, 0, 1, 1, 0, 0, 0, 1]
switch(D) = D .* df_potential.Y1 + (1 .- D) .* df_potential.Y0 # switching equation
df.Y = switch(df.D)

print(df)

# 10×2 DataFrame
#  Row │ D      Y     
#      │ Int64  Int64 
# ─────┼──────────────
#    1 │     1      7
#    2 │     0      6
#    3 │     1      5
#    4 │     0      8
#    5 │     1      4
#    6 │     1     10
#    7 │     0     10
#    8 │     0      6
#    9 │     0      7
#   10 │     1      9

Y_iは天才医師の判断をもとに,swithing equationを介してpotential outcomesのうちの1つのみが実現されて観測されます.ATEは直接計算できないので推定して求めます.

例えばATEの一番直感的な推定方法として,処置を受けた人のアウトカムの平均と,処置を受けなかった人のアウトカムの平均の差(Simple Difference in mean Outcomes: SDO)を考えます.これが果たして"良い"推定方法なのか見てみましょう.

\begin{align*} SDO &= E[Y_i|D_i=1] - E[Y_i|D_i=0] \quad &\text{推定方法の定義そのもの} \\ &= E[D_i Y_i^1 + (1 - D_i) Y_i^0|D_i=1] - E[D_i Y_i^1 + (1 - D_i) Y_i^0|D_i=0] \quad &\text{swithcing equationを用いてpotential outcomesで表記} \\ &= E[Y_i^1|D_i=1] - E[Y_i^0|D_i=0] \end{align*}

2つの項ともcounterfactualではなく観測できるので,手元のデータでSDOは計算できます.とりあえずサンプルデータでSDOを推定してみましょう.

\begin{align*} SDO &= E[Y_i^1|D_i=1] - E[Y_i^0|D_i=0] \quad &\text{母集団における関係} \\ & = \frac{1}{N_T} \sum_{i=1}^n (y_i | d_i = 1) - \frac{1}{N_C} \sum_{i=1}^n (y_i | d_i = 0) &\text{サンプルにおける関係} \end{align*}
# calculate SDO, an estimate of ATE
sdo = mean(df.Y[df.D .== 1, :]) - mean(df.Y[df.D .== 0, :])

# -0.4

ATEの推定量であるSDO-0.4なので「平均的に手術をした人はしない人に比べて,余命は0.4年縮む」となりますが,この結果は明らかに手術の処置効果として適切はありません.シミュレーションなので私たちはATEの真の値が0.6であると知っています.手術をすることで平均的には余命は0.6年伸びるはずです.ではなぜ単純な平均の差SDOによる推定が間違っているのでしょうか?Potential outcomesを使って調査してみましょう.

SDO decomposition

SDOがなぜ真のATEと異なるのかを調べるために,SDOATEの関係をpotential outcomesの式で表してみます.

\begin{align*} \underbrace{E[Y^1 | D=1] - E[Y^0 | D=0]}_{\text{Simple Difference in Outcomes}} &= \underbrace{E[Y^1] - E[Y^0]}_{\text{Average Treatment Effect}} \\ &+ \underbrace{E[Y^0 | D=1] - E[Y^0 | D=0]}_{\text{Selection bias}} \\ &+ \underbrace{(1-\pi)(ATT - ATU)}_{\text{Heterogeneous treatment effect bias}} \end{align*}

ただし,\piは処置を受けた母集団の割合.


Proof:

\begin{align*} ATE & = \pi ATT + (1 - \pi) ATU \\ & = \pi (E[Y^1 | D = 1] - E[Y^0 | D = 1]) + (1 - \pi) (E[Y^1 | D = 0] - E[Y^0 | D = 0]) \\ & = \left\{\pi E[Y^1 | D = 1] + (1 - \pi)E[Y^1 | D = 0]\right\} - \left\{\pi E[Y^0 | D = 1] + (1 - \pi)E[Y^0 | D = 0]\right\} \end{align*}

見やすくするために,

\begin{align*} E[Y^1 | D = 1] & = a \\ E[Y^1 | D = 0] & = b \\ E[Y^0 | D = 1] & = c \\ E[Y^0 | D = 0] & = d \\ ATE &= e \end{align*}

とすると,

\begin{align*} e & =\big\{\pi{a}+(1-\pi)b\big\}-\big\{\pi{c} + (1-\pi)d\big\} \\ e & =\pi{a}+b-\pi{b}-\pi{c} - d + \pi{d} \\ e & =\pi{a}+ b-\pi{b}-\pi{c} - d + \pi{d} + (\mathbf{a} - \mathbf{a}) + (\mathbf{c} - \mathbf{c}) + (\mathbf{d} - \mathbf{d}) \\ 0 & =e-\pi{a} - b + \pi{b} + \pi{c} + d - \pi{d} - \mathbf{a} + \mathbf{a} - \mathbf{c} + \mathbf{c} - \mathbf{d} + \mathbf{d} \\ \mathbf{a}-\mathbf{d} & =e-\pi{a} - b + \pi{b} + \pi{c} + d - \pi{d} +\mathbf{a} -\mathbf{c} +\mathbf{c} - \mathbf{d} \\ \mathbf{a}-\mathbf{d} & =e + (\mathbf{c} -\mathbf{d}) + \mathbf{a}-\pi{a} - b + \pi{b} -\mathbf{c} + \pi{c} + d - \pi{d} \\ \mathbf{a}-\mathbf{d} & =e + (\mathbf{c} -\mathbf{d}) + (1-\pi)a -(1-\pi)b + (1-\pi)d - (1-\pi)c \\ \mathbf{a}-\mathbf{d} & =e + (\mathbf{c} -\mathbf{d}) + (1-\pi)(a-c) -(1-\pi)(b-d) \end{align*}

よって,表記を戻すと,

\begin{align*} E\big[Y^1\mid D=1\big]-E\big[Y^0\mid D=0\big] & = ATE \\ & + \Big(E\big[Y^0\mid D=1\big] - E\big[Y^0\mid D=0\big]\Big) \\ & + (1-\pi)(ATT - ATU) \end{align*}

SDOは3つの項に分解(decompose)できることが分かります.まず初めに右辺にATEがあります.これが知りたいパラメータです.しかし右辺にはATE以外のもの,selection biasheterogeneous treatment effect biasも含まれています.この2つのバイアスがSDOの推定値とATEの真の値との違いを生み出している原因です.

selection bias E[Y^0 | D=1] - E[Y^0 | D=0] は「処置群と対照群の処置を受けなかったときのもともとのアウトカムY^0の違い」を意味します.例で言うと,「手術をした人の手術をしなかった場合の余命と,手術をしてない人の手術をしなかった場合の余命の違い」がselection biasです.なぜ処置群と対照群の処置を受けないときのpotential outcome Y^0は違うのでしょうか?その原因はスーパードクターの天才的な手術の割り当てです.つまり「\{Y^1, Y^0\}に依存してD_iを決めている(独立でない)」ため,E[Y^0 | D=1] = E[Y^0 | D=0]が成り立たないのです.ちなみに,E[Y^0 | D=1]はcounterfactualでE[Y^0 | D=0]はfactualです.

heterogeneous treatment effect bias (1-\pi)(ATT - ATU) は少しマイナー[16]ですが,「処置群の平均処置効果と対照群の平均処置効果の違い」に処置を受けた母集団の割合\piをかけたものです.このバイアスは,個人間でunit specificな処置効果\delta_iが異なるheterogeneityのもと,処置群の\delta_iと対照群の\delta_iの分布が異なるようにD_iをアサインすると生じます.がん手術の例では,スーパードクターは\delta_i>0の患者に対してD_i=1, \delta_i>0の患者に対してD_i=0と処置を割り振っているため,明らかに\delta_iの分布は処置群と対照群で異なり,ATT = ATUは成り立ちません.

バイアスの正体がわかったのでバイアスを算出してみましょう.シミュレーションでは2つのpotential outcomesを知っている状態なので,counterfactualを計算することができ,バイアスも計算できます.

# calculate selection bias
sel_bias = mean(df_potential.Y0[df.D .== 1] - df_potential.Y0[df.D .== 0])

# calculate heterogeneous treatment effect bias
π = mean(df.D)
att = mean(df_potential.Y1[df.D .== 1] - df_potential.Y0[df.D .== 1])
atu = mean(df_potential.Y1[df.D .== 0] - df_potential.Y0[df.D .== 0])
het_bias = (1-π) * (att - atu)

print(sel_bias, "\n")
# -4.8
print(het_bias, "\n")
# 3.8

ちなみに,SDO decompositionの左辺(SDO)と右辺(ATE + selection bias + heterogeneous treatment effect bias)が等しいことも確認できます.

# check decomposition satisfies
sdo - (ate + sel_bias + het_bias)

# 0

potential outcomesの表記を使ってSDOを分解した結果,SDOには知りたいパラメータATEが確かに含まれていることが分かりました.しかし,SDOにはselection biasとheterogeneous treatment effect biasも含まれているため,SDOATEとは異なります.また,ATE, selection bias, heterogeneous treatment effect biasにはそれぞれcounterfactualが含まれているため,実際のデータでは個別に計算してバイアスを除去することは不可能です[17].heterogeneous treatment effect biasに関しては,処置効果が一定である(homogeneous treatment effect, \delta_i = \delta \forall i)という強い仮定をすればなくなります.しかし依然としてselection biasは残ったままです.因果推論の最終目標は「selection bias を除去して,ピュアな因果効果を取り出すこと」です.次回はselection biasが0となるような仮定(independence assumption, {Y^1,Y^0} \perp \!\!\! \perp D)とそれを成り立たせる推定(Randomization Inference)について紹介します.

最後にPotential Outcomesの一連の流れをおさらいします.

  1. potential outcomes \{Y^0, Y^1\} を書き出す.
  2. 現実のデータはswithcing equationであることを意識する.
  3. 求めたい効果(e.g., ATE, ATT, ATU)の推定(e.g., SDO)を,potential outcomesを使って展開する.

この「Yは片方しか知らないけど,potential outcomesで両方知っている体で因果モデルを考える」お作法は色んな因果推論の手法の導入にでてくるので慣れておきましょう.

Refference

Cunningham, S., 2021. Causal inference: the mixtape. Yale University Press.
Pearl, Judea. 2009. Causality. 2nd ed. Cambridge University Press.
Splawa-Neyman, Jerzy. 1923. “On the Application of Probability Theory to Agricultural Experiments. Essay on Principles.” Annals of Agricultural Sciences, 1–51.
Rubin, Donald. 1974. “Estimating Causal Effects of Treatments in Randominzed and Nonrandomized Studies.” Journal of Educational Psychology 66 (5): 688–701.
Angrist, J.D. and Pischke, J.S., 2008. Mostly harmless econometrics. In Mostly Harmless Econometrics. Princeton university press.

脚注
  1. 興味の対象Xが連続変数の回帰分析の場合,因果関係の問いは「X1単位増加したときのYの変化はどのくらいか?」でしたが,ここでは興味の対象となる変数がXの代わりに0または1の値をとるダミー変数Dである場合をイメージしてください.「D=0の(もししなかった)ときのYと比べて,D=1の(もしした)ときのYはどのくらい変化するか?」となります. ↩︎

  2. 同じ議論が連続変数Xについても拡張できます. ↩︎

  3. 因果推論・計量経済学では"処置"という文脈になった瞬間,説明変数の表記はXからDになることが多いです.Xには連続変数のイメージがあるからでしょうか. ↩︎

  4. 例えば,「政策を施す」「新薬を投与する」などがイメージしやすいと思いますが,やるかやらないかの変数なので何でもありです.介入とも呼ばれます. ↩︎

  5. 雑に言えば「相関していない」 ↩︎

  6. 厳密には「個人ごとの因果効果の大きさと関係なく」 ↩︎

  7. こうなれば回帰なんてしなくても,処置を受けた人のYから処置を受けなかった人のYを引き算すれば処置効果が求まります. ↩︎

  8. 例えば「大学に行くことの賃金への効果」を推定するために全国の高校3年生に対してコインを振り,大学に行くか行かないかを決めるなんてことは,経済的・倫理的に実現不可能です. ↩︎

  9. 因果モデルのフレームワークに関しては,Pearl (2009)のGraphical Model(DAG)とSplawa-Neyman (1923); D. Rubin (1974)のPotential Outcomesの2つの派閥が存在しますが,これについては別記事で述べようかと思います.ちなみに経済分野でDAGはあまり使われていない印象です. ↩︎

  10. なぜか知りませんが,処置効果はよく\deltaと表します.するかしないかの"差: difference"のdから来ているのでしょうか. ↩︎

  11. 本当に平行世界や時間の巻き戻しができれば,両方のpotential outcomesが観測できるので因果推論で苦労しません. ↩︎

  12. 新薬を投与した患者における新薬の効果や,政策を実施した地域における政策の効果が知りたいと思うのはいたって普通です. ↩︎

  13. 新薬を投与しなかった患者へ仮に新薬を投与したときの効果や,政策を実施しなかった地域へ仮に政策を実施したときの効果です. ↩︎

  14. 雑に言えば,全母集団,処置群,対照群の間では,unit specificな処置効果\delta_iの分布は違うと考えるのが自然ということです. ↩︎

  15. ネタばらしすると,D\{Y^1, Y^0\}(もっと言うとY^1-Y^0=\delta_i)に依存しているとSDOはバイアスします.もし\{Y^1, Y^0\}と関係ない(独立する)ようにDをコイン投げで処置をアサインすれば,SDOでもATEを正しく計算できます. ↩︎

  16. 興味の対象がATTなら,このバイアスは出てきません.(SDO=ATT + \text{selection bias}) ↩︎

  17. SDOはデータから簡単に算出できる数値ですが,その数値のうち,何がATEで何がbiasかは識別できません. ↩︎

Discussion