Dropout

データサイエンスについて勉強したことを書いていきます。機械学習、解釈性、因果推論など。

Synthetic Difference In Differences(Arkhangelsky et. al., 2019)を読んだ


はじめに

GW中にSynthetic difference in differences(Arkhangelsky, D., Athey, S., Hirshberg, D. A., Imbens, G. W., & Wager, S. (2019)) を読みました。
ランダム化比較試験(RCT)が行えない状況でのパネルデータのから処置効果を推定する際には、バイアスを取り除くためにDifference In DifferencesやSynthetic Controlがよく用いられていますが、
Synthetic Difference In Differencesは名前の通りDifference In DifferencesとSynthetic Controlのいいとこ取りになっています。
パネルデータから因果推論を行う際に非常に強力な武器になると思ったので、本記事でコンセプトをまとめ、論文内の比較実験を再現しました。


コンセプト

セッティング

 i = 1, \dots, Nのユニット(たとえば個人)に対して t = 1, \dots, T時点でのデータがとれているパネルデータを考えます。このとき、アウトカム Y_{it}は以下の N \times T行列で表現できます。*1

\begin{align}
\mathbf{Y}
= \begin{pmatrix}
Y_{11} & \cdots & Y_{1T}\\
\vdots & \ddots & \vdots\\
Y_{N1} & \cdots & Y_{NT}
\end{pmatrix}
\end{align}


簡単のために、一番シンプルな設定として、 i = Nのユニットが  t = T 時点のみ処置を受けるケースを考えます。つまり、 i = 1, \dots, N-1 はコントロール群(c)で i=Nは処置群(t)になりますし、 t = 1, \dots T-1が処置前(pre)、 t = Tが処置後(post)となります。

f:id:dropout009:20190506184615p:plain

ここで、仮想的に i=Nのユニットが t=T時点で処置を受けた場合のアウトカムを Y_{NT}(1)、受けなかった場合のアウトカムを Y_{NT}(0)と書くことにしましょう。このとき、 Y_{NT}(1) - Y_{NT}(0)つまり処置を受けた場合と受けなかった場合の差をみることで、処置がアウトカムに与えるインパクトを測定することができます。ただ、実際に僕たちに観測できるのは処置を受けた Y_{NT}(1)のみで、処置を受けなかったときの Y_{NT}(0)は観測することができません。そこで、なんらかの手法を使って、実際には観測できない Y_{NT}(0)を推定する必要が出てきます。これを反事実と呼びます。以降、反事実 Y_{NT}(0)を推定する手法としてDifference In DIfference(DID)、Synthetic Control(SC)、そしてその融合であるSynthetic Difference In Difference(SDID)を比較していきます。

Difference in Differences (DID)

処置前コントロール群の値にに加えて、(1)コントロール群と処置群のアウトカムにそもそもどのくらい違いがあるのか、(2)処置を受けなくても処置の前後でどのくらいアウトカムが変わるのかを考慮することで、処置後処置群の値 Y_{NT}(0)が推定できるのではというのがDIDの発想です。具体的には、DIDによる推定量 \hat{Y}_{NT}^{\text{DID}}(0) は以下で定義されます。

\begin{align}
\hat{Y}_{NT}^{\text{DID}}(0) &= \bar{Y}^{c, pre} + \left(\bar{Y}^{c, post} - \bar{Y}^{c, pre}\right)+ \left(\bar{Y}^{t, pre} - \bar{Y}^{c, pre}\right)\\
&=\frac{1}{N- 1}\frac{1}{T-1}\sum_{i=1}^{N-1}\sum_{t=1}^{T-1}Y_{it} \\
&\quad+ \left(\frac{1}{N- 1}\sum_{i=1}^{N-1}Y_{iT} - \frac{1}{N- 1}\frac{1}{T-1}\sum_{i=1}^{N-1}\sum_{t=1}^{T-1}Y_{it}\right)\\
&\quad+ \left(\frac{1}{T-1}\sum_{t=1}^{T-1}Y_{Nt} - \frac{1}{N- 1}\frac{1}{T-1}\sum_{i=1}^{N-1}\sum_{t=1}^{T-1}Y_{it}\right)
\end{align}

ここで、 \bar{Y}はそれぞれのグループの平均値を表しています。上式は以下のように解釈できます。まず、単に処置前コントロール群のみを用いて予測を行うと(第一項)、コントロール群と処置群の違いでバイアスがかかり、次に処置前と処置後の違いでもバイアスがかかります。そこで、コントロール群<->処置群の差を第二項で、処置前<->処置後の差を第三項で補正しています。この意味において、DID推定量はバイアスを二重に補正していると言えます。

f:id:dropout009:20190506185121p:plain

最後に、こうしてDIDで推定した \hat{Y}_{NT}^{\text{DID}}(0)と実際の観測値 Y_{NT}(1)の差を見ることで処置のインパクトが推定できます。

\begin{align}
\hat{\tau}^{\text{DID}} = Y_{NT}(1) -\hat{Y}_{NT}^{\text{DID}}(0)
\end{align}

Synthetic Control (SC)

DIDは単純平均でしたが、コントロール群の加重平均で処置群を表現しようというのがSCの発想になります。SCは以下の2ステップを踏みます。まず、加重平均に用いる各コントロール i = 1, \dots, N-1の重み \hat{\omega}_iを、うまく処置群を近似できるように決めます。

\begin{align}
\sum_{i=1}^{N-1} \hat{\omega}_{i} Y_{it} \approx Y_{N t} \text { for all } t=1, \ldots, T-1
\end{align}

f:id:dropout009:20190506185108p:plain

具体的には、以下の二乗誤差を小さくするように \hat{\omega}_iを求めます。

\begin{align}
\hat{\omega}&=\underset{\omega \in \mathbb{W}}{\arg \min }\;\frac{1}{T-1} \sum_{t=1}^{T-1}\left(\sum_{i=1}^{N-1} \omega_{i} Y_{i t}-Y_{N t}\right)^{2} + \frac{1}{2}\zeta\|\omega\|_2\\
\text{where}\quad \mathbb{W}&=\left\{\omega \in \mathbb{R}^{N - 1} \;\bigg|\; \omega_{i} \geq 0, \; \sum_{i=1}^{N-1} \omega_{i}=1\right\}
\end{align}

 \omegaは加重平均の重みなので0以上、足して1の制約がかかっています。また、 L_2正則化を入れることで \omegaの推定を安定させています。

次に、この重みを使って処置後である Y_{NT}(0)を推定します。
\begin{align}
\hat{Y}_{N T}^{\mathrm{SC}}(0)=\frac{1}{T-1} \sum_{i=1}^{N-1} \sum_{t=1}^{T-1} \hat{\omega}_{i} Y_{i t}+\left(\sum_{i=1}^{N-1} \hat{\omega}_{i}Y_{i T}-\frac{1}{T-1} \sum_{i=1}^{N-1} \sum_{t=1}^{T-1} \hat{\omega}_{i}Y_{i t}\right)
\end{align}

DIDの推定量 \hat{Y}_{NT}^{\text{DID}}(0)と見比べると:

  • DIDでは単純平均でしたが、SCは加重平均を用いることで処置群の近似を改善しています。
  • その一方で、SCにはDIDにあった処置前後のバイアス補正(第三項)が存在しません。

Synthetic Difference In Differences (SDID)

DIDとSCを見比べることで、双方の利点と欠点が見えました。そこで、SDIDでは両方のいいとこ取りをします。つまり、

  • 単純平均ではなく加重平均を用いる
  • コントロール/トリートメントのバイアス補正だけでなく、処置前後のバイアス補正を入れる

ことで反事実 Y_{N T}(0)のよりよい推定を目指します。

\begin{align}
\hat{Y}_{N T}^{\mathrm{SDID}}(0)= \sum_{i=1}^{N-1} \sum_{t=1}^{T-1} \hat{\omega}_{i} \hat{\lambda}_{t} Y_{i t}+\left(\sum_{t=1}^{T-1} \hat{\lambda}_{t}Y_{N t}-\sum_{t=1}^{T-1} \sum_{i=1}^{N-1} \hat{\omega}_{i}\hat{\lambda}_{t} Y_{i t}\right)+\left(\sum_{i=1}^{N-1} \hat{\omega}_{i}Y_{i T}-\sum_{i=1}^{N-1} \sum_{t=1}^{T-1} \hat{\omega}_{i}\hat{\lambda}_{t} Y_{i t}\right)
\end{align}


ここで、 \hat{\lambda}_tは時間方向の重みであり、 \hat{\omega}_iと同様に以下の最小化問題を解くことで求めます。

\begin{align}
\hat{\lambda}&=\underset{\lambda_0\in\mathbb{R},\; \lambda \in \mathbb{L}}{\arg \min } \;\frac{1}{N-1}\sum_{i=1}^{N-1}\left(\lambda_0 + \sum_{t=1}^{T-1} \lambda_{t} Y_{i t}-Y_{i T}\right)^{2}+ \frac{1}{2}\xi\|\lambda\|_2\\
\text{where}\quad \mathbb{L}&=\left\{\lambda \in \mathbb{R}^{T - 1} \;\bigg|\; \lambda_{t} \geq 0, \; \sum_{t=1}^{T-1} \lambda_{t}=1\right\}
\end{align}


ただし、トレンドに対応するために \lambda_0が入っています。これは重みとしては用いません。


比較実験

論文ではAbadie, Diamond, and Hainmueller(2010)のデータを用いてDID, SC, SDIDを比較した実験を行っているので、それを再現した結果を紹介します。

ADH(2010)ではカリフォルニアの禁煙法が喫煙に与えたインパクトをSynthetic Controlを用いて推定しています。
使用データはカリフォルニアを含むアメリカ39州の年度別喫煙量のデータで、1970年から2000年にかけて31年分あります。なお、禁煙法は1989年から実施されています。
今回の実験では実際に禁煙法の効果を調べたいのではなく、 Y_{NT}(0)をうまく予測できるかを確かめたいので、処置前(1988年以前)のデータに関して、各州の1期先の喫煙量を他の38州の喫煙量からDID/SC/SDIDで予測し、精度を検証します。*2
よりよい精度で1期先の予測ができるなら、処置の効果 \hat{\tau}_{NT} = Y_{NT}(1) - \hat{Y}_{NT}(0)をより正確に推定できると言えます。

具体的には、各州 i = 1, \dots, 39に対して1980年から1988年までの9年分の予測をDID/SC/SDIDで行い、RMSEを計算します。
\begin{align}
\operatorname{RMSE}_{i}=\sqrt{\frac{1}{9} \sum_{t=1980}^{1988}\left(Y_{it}-\hat{Y}_{it}\right)^{2}}
\end{align}


その結果が以下になります。

f:id:dropout009:20190506172341p:plain


DID/SCと比較して、SDIDはより高い精度で Y_{NT}(0)を予測することに成功しています。中央値で見るとDIDと比較して50%、SCと比較しても15%の改善です。


具体的にどの部分で精度に差が出ているのかプロットを見て確認してみます。

f:id:dropout009:20190506172657p:plain

上図は各州の喫煙量の実測値とDID/SC/SDIDの推定値がプロットされています。横軸が年度で縦軸が喫煙量です。
図が細かいのですが、基本的にSDID(赤)はDID(オレンジ)/SC(緑)よりも実測値Y(青)をうまく予測できています。
特に差が顕著な部分をいくつか抜き出したものが下の図になります。

f:id:dropout009:20190506173610p:plain

DIDは全体的に精度が悪いと思いますが、
Synthetic Controlは非常に特徴的で、New HampshireやUtahなど、他の州の加重平均で表現できない州は予測がうまくいっていません。
これに対して、SDIDは非常にロバストな予測ができています。


まとめ

本記事では、Difference In DifferencesとSynthetic Controlを融合させたSynthetic Difference In Differencesのコンセプトをまとめ、実際に精度が改善することを確認しました。
SDIDはRCTが行えない状況でパネルデータの因果推論を行う際、非常に強力な武器になると思います。


参考文献

Arkhangelsky, D., Athey, S., Hirshberg, D. A., Imbens, G. W., & Wager, S. (2019). Synthetic difference in differences (No. w25532). National Bureau of Economic Research.[1812.09970] Synthetic Difference in Differences

GitHub - swager/sdid-script: Example scripts for synthetic difference in differences

Alberto Abadie, Alexis Diamond, and Jens Hainmueller. Synthetic control methods for comparative case studies: Estimating the effect of California’s tobacco control program. Journal of the American Statistical Association, 105(490):493–505, 2010. https://economics.mit.edu/files/11859

再現コード
GitHub - dropout009/sdid_python: replication python code for synthetic difference in difference simulation. please check https://arxiv.org/abs/1812.09970 and https://github.com/swager/sdid-script

*1:簡単のため、とりあえず共変量 X_{it}は無視することにします。

*2:論文ではやってませんが、カリフォルニアを除いてしまえば2000年まで実験することもできると思います