DID(差分の差分法)

ランダム化実験ができない観察データから、時間トレンドやグループ間の属性差(交絡)を排除して因果効果を測定するDID(差分の差分法)の考え方と、平行トレンド仮定の意味を学びます。

難易度 Lv 4 / 10想定時間:約20

できるようになること


社員食堂の減塩メニューと血圧

ある企業が、社員の健康状態を改善するために、本社の社員食堂で「減塩メニュー」を導入しました。

導入前(10月:秋)と導入後(1月:冬)で社員の平均血圧を比較したところ、減塩メニューを導入したにもかかわらず、社員の平均血圧が上昇しているというデータが得られました。

この結果は、「減塩メニューには効果がなかった」あるいは「かえって健康を悪化させた」ことを意味するでしょうか。

実際にはそうとは言えません。ここには、冬の寒さによって血管が収縮し血圧が上昇するという、一般的に知られる生理学的な季節変動(共通の時間トレンド)が交絡している可能性があります。

このように、時間とともに変化するデータから純粋な因果効果を測定するために、対照群を用いて時間トレンドを相殺する手法が**差分の差分法(**DID:Difference-in-Differences)です。


二重のバイアスとDIDの定義

介入効果を正確に測定しようとするとき、私たちの前に立ちはだかる交絡(バイアス)は、大きく次の2つに分類できます。

  1. グループ間の固有差(グループの不均一性
    • 処置群(メニューを導入したグループ)と対照群(導入していないグループ)が、もともと持っているベースライン(水準)の差です。これは「時間経過によって変化しない」固有の属性差です。
    • 例:東京本社の社員と大阪支社の社員の、もともとの平均血圧の差(食習慣や地域差など)。
  2. 共通の時間トレンド
    • 介入の有無にかかわらず、時間の経過に伴って発生する変化です。これは「グループ間で共通している」マクロな変動です。
    • 例:秋から冬にかけての季節変化による血圧の上昇、景気変動、年をまたいだ全体の推移など。

もし、処置群だけで「導入前と導入後」を比較すると、共通の時間トレンド(冬の寒さ)がバイアスとなり、効果を見誤ります。 また、ある一時点(1月)で「処置群と対照群」を比較すると、両者がもともと持つグループ間の固有差がバイアスとなります。

DIDは、これら2つのバイアスを「差の差」を取ることで同時に相殺する手法です。

数理的な定義

処置群を TT(東京本社 =1= 1、大阪支社 =0= 0)、期間を PostPost(事後である1月 =1= 1、事前である10月 =0= 0)と表します。各グループの平均値を Yˉ\bar{Y} とすると、DID推定量 δ\delta は次のように定義されます。

δ=(YˉT=1,Post=1YˉT=1,Post=0)(YˉT=0,Post=1YˉT=0,Post=0)\delta = (\bar{Y}_{T=1, Post=1} - \bar{Y}_{T=1, Post=0}) - (\bar{Y}_{T=0, Post=1} - \bar{Y}_{T=0, Post=0})

これは、「処置群(東京)の前後変化」から「対照群(大阪)の前後変化」を差し引いたものです。なお、減塩の文脈のように「血圧の低下」を目指す場合、効果が有効であればDID推定量は負の値(マイナス)になります。

モデル式で表すと、何が起きているかがより明確になります。ある個人 ii の血圧 YiY_i が以下の構造で決まっていると仮定します。

Yi=β0+β1Ti+β2Posti+β3(Ti×Posti)+uiY_i = \beta_0 + \beta_1 T_i + \beta_2 Post_i + \beta_3 (T_i \times Post_i) + u_i

ここで:

この式から、各グループにおいてランダムな誤差 uiu_i の平均(期待値)がゼロになると仮定し、4つの平均値を計算して「差の差」を展開してみましょう(※以降、YˉT=1,Post=1\bar{Y}_{T=1, Post=1}Yˉ1,1\bar{Y}_{1, 1} のように略記します)。

最後に、この2つの変化量の差を取ります。

δ=(β2+β3)β2=β3\delta = (\beta_2 + \beta_3) - \beta_2 = \beta_3

このように、「差の差」を取ることによって、グループ間の固有差(β1\beta_1)と共通の時間トレンド(β2\beta_2)の双方が数式上で綺麗に相殺され、純粋な介入効果(β3\beta_3)だけが取り出されます。


反事実の推定

DIDの背後にあるのは、因果推論における**反事実(**counterfactual)という考え方です。

因果効果を測定する最も理想的な方法は、「減塩メニューを導入した東京本社の1月の血圧」と、「もし東京本社で減塩メニューを導入しなかった場合の、同じ東京本社の1月の血圧(反事実)」を比較することです。しかし、現実には同じ対象について「導入した事実」と「導入しなかった事実」を同時に観測することはできません。

そこで、DIDでは対照群(大阪支社)のデータを使って反事実を推定します。

大阪支社の社員の平均血圧が、10月の 118 mmHg118 \text{ mmHg} から1月の 126 mmHg126 \text{ mmHg} へと、この期間に +8 mmHg+8 \text{ mmHg} 上昇したとします。

もし東京本社で減塩メニューを導入しなかったなら、東京本社の平均血圧も大阪支社と同じ幅(+8 mmHg+8 \text{ mmHg})だけ上昇していたはずだと考えます。10月の東京本社の平均血圧が 125 mmHg125 \text{ mmHg} だったとすれば、1月の反事実は 125+8=133 mmHg125 + 8 = 133 \text{ mmHg} になります。

実際の1月の東京本社の血圧が 129 mmHg129 \text{ mmHg} であったなら、反事実である 133 mmHg133 \text{ mmHg} と比較して、血圧が実質的に 4 mmHg4 \text{ mmHg} 抑制されたことになります。

因果効果=観測された結果(129)反事実の推測(133)=4 mmHg\text{因果効果} = \text{観測された結果} (129) - \text{反事実の推測} (133) = -4 \text{ mmHg}

このように、対照群は「もし介入がなかったら処置群がどうなっていたか」という反事実のトレンドを示す役割を担っています。


平行トレンド仮定

DIDが正しく機能するためには、非常に重要な前提条件があります。それが**平行トレンド仮定(**parallel trends assumption)です。

平行トレンド仮定とは、「もし介入が行われなかったら、処置群と対照群の平均値は、時間の経過とともに同じ幅だけ変化(平行に推移)していたはずである」という仮定です。

処置群: 東京(実績)処置群: 東京(反事実)対照群: 大阪(実績)時間 (10月 → 1月)平均血圧 (mmHg)Pre (事前)Post (事後)118126133 (反事実)133 (反事実)125129129介入効果: -4 mmHg

この仮定が成り立つからこそ、対照群の変化量(大阪の +8 mmHg+8 \text{ mmHg})を、処置群の反事実の変化量として代用できます。

平行トレンド仮定が崩れる例

もし、どちらか一方のグループだけに、介入と同タイミングで発生した独自の外部イベント(ショック)があった場合、この仮定は崩れます。

平行トレンド仮定が崩れている場合、DIDによって算出された効果にはバイアスが混入し、間違った結論を導いてしまいます。


DIDと他の比較手法の使い分け

因果効果を測定するアプローチには複数の方法があります。それぞれの特徴と仮定の違いを整理しましょう。

手法比較内容相殺・調整できるバイアス成立に必要な主な仮定
単純前後比較
(t検定など)
東京本社の 1月 vs 10月グループ間の固有差
(東京本社の自己比較のため)
時間トレンドがゼロである
(季節による血圧変化が全くない)
単純グループ比較
(t検定など)
1月における 東京本社 vs 大阪支社共通の時間トレンド
(同じ1月の比較のため)
グループ間の固有差がゼロである
(東京と大阪のベースラインが同じ)
前年同期比較
(前年同期のt検定など)
東京本社の 今年1月 vs 昨年1月グループ間の固有差、季節トレンド
(同じ東京・同じ1月のため)
年をまたいだトレンドがゼロである
(昨年から今年へのマクロな血圧変化がない)
DID(差分の差分法)(東京1月-東京10月)
-(大阪1月-大阪10月)
グループ間の固有差、共通の時間トレンド
(双方を数式で相殺)
平行トレンド仮定が成り立つ
(介入がなければ同じ幅で推移した)

使い分けの判断基準


回帰分析によるDIDの実行

実務においてDIDを実行する際は、前述の平均値の単純な引き算よりも、**重回帰分析(**OLS:Ordinary Least Squares)を用いるのが一般的です。

Yi=β0+β1Ti+β2Posti+β3(Ti×Posti)+k=1KγkXki+uiY_i = \beta_0 + \beta_1 T_i + \beta_2 Post_i + \beta_3 (T_i \times Post_i) + \sum_{k=1}^K \gamma_k X_{ki} + u_i

回帰分析を使用する主なメリットは以下の2点です。

  1. 共変量(コントロール変数)の追加:
    • 社員の年齢、性別、初期の血圧などの個人属性 XkiX_{ki} をモデルに含めて調整できます。これにより、両グループのサンプル構成のわずかなズレによる影響を抑え、推定値の精度を高める(標準誤差を小さくする)ことができます。
  2. 標準誤差とp値の同時算出:
    • 回帰モデルを実行することで、介入効果を示す交互作用項の係数 β3\beta_3 の点推定値だけでなく、その標準誤差やp値、信頼区間を直接得ることができ、仮説検定(効果が統計的に有意かどうか)を容易に行えます。

よくある誤解

注意
  • 誤解1:DIDを使えばどんな対照群を連れてきても正しく因果効果が測れる
    • DIDの成立は「平行トレンド仮定」に完全に依存しています。処置群と全く異なる時間トレンドを持つグループ(例:冬でも常に温暖で血圧変化が起きない沖縄支社のデータ)を対照群に選ぶと、季節トレンドが正しく相殺されず、誤った因果効果が算出されてしまいます。
  • 誤解2:平行トレンド仮定は、データから完全に検証できる
    • 介入「前」の複数期間 of データ(プレトレンド)を比較することで、過去においてトレンドが平行であったかを視覚的・統計的に確認することはできます。しかし、介入「後」の期間について「もし介入がなかったら平行であったか」という反事実は絶対に観測できません。そのため、平行トレンド仮定は最終的にはデータだけで100%立証することはできず、背景にある論理や妥当性の説明が必要です。

まとめ

DID(差分の差分法)は、ランダム化ができない観察データにおいて、時間経過によって変化しない「グループ間の固有差」と、グループ間で共通する「時間トレンド」という二重のバイアスを同時に排除するための因果推論手法です。

その妥当性は、介入がなかった場合に両グループが平行に推移したはずであるという「平行トレンド仮定」に依存しています。

分析の目的や対照群の汚染状況、マクロな時間トレンドの有無に応じて、DIDと他の単純比較(t検定など)を正しく使い分けることが、信頼性の高い意思決定に繋がります。