2時点(以上)で測定されたデータにおいて、処置群と対照群との差を検定の対象とする。
上の図で、2時点における処置群と対照群の結果を示す。出発点が異なれば、Time2時点での差を検定に持ち込めるが、Time1時点での結果が異なる。
この場合、有用なのがDifference in Difference 差の差分法解析である。具体例で見てみる。学校A(処置群)と学校B(対照群)があり、学校Aである教育法が行われたとする。テストの平均点をoutcomeとする。
学校A(処置群) | 学校B(対照群) | 差 | |
時点1 | 50 | 45 | +5 |
時点2 | 70 | 55 | +15 |
変化 | +20 | +10 |
数学的には、例えば上記がテストの平均点が回帰モデルで$$y_{xt} = p_x + q_t + \delta D_{xt} + \epsilon_{xt} $$で表されるとする。\(x\)は学校の違いで、\(t\)は時間を表すものとする。\(D_{xt}\)は処置を表すダミー変数で、\(\epsilon\)は誤差である。
$$y_{A1} = p_A + q_1 + \delta D_{A1} + \epsilon_{A1}$$
$$y_{A2} = p_A + q_2 + \delta D_{A2} + \epsilon_{A2}$$
$$y_{B1} = p_B + q_1 + \delta D_{B1} + \epsilon_{B1}$$
$$y_{B2} = p_B + q_2 + \delta D_{B2} + \epsilon_{B2}$$
であり、上の\(4\)式から
$$y_{A2}-y_{A1} -(y_{B2}-y_{B1}) = \delta (D_{A2}-D_{A1})- \delta (D_{B2}-D_{B1}) + (\epsilon_{A2}-\epsilon_{A1}) – (\epsilon_{B2}-\epsilon_{B1})$$
ここで、\(D\)は処置効果を表すダミー変数であったから、\(D_{A2} = 1, D_{A1} = D_{B1} = D_{B2} = 0 \)とすると、$$y_{A2}-y_{A1}-(y_{B2}-y_{B1}) = \delta$$となる。この\(\delta\)が処置効果を表すと考えられる。
上の例では、時点2の時点での学校Aと学校Bの平均点の差である\(+15\)を比較するのではなく、差の差である\((20-10) = 10\)を比較することに当たる。
重要な仮定として、「仮に処置がなかったとしたら、両者は同じトレンドで推移する」ということがある。これを平行トレンドの仮定という。この仮定が成り立たない場合、差の差分法を考えることはできない(処置効果を単独で説明することはできない)。
【Stataでの実装】差の差分法は要するに回帰分析なので、回帰分析ができるのであれば統計ソフトは何でも良い。Stataではデータフレームをlong型にして、xtregなどで行えば良い。
例えば、cohort \(= 1, 2\)、時点(time)を\(0, 1\)として、ダミー変数としてcohort\(*\)時点とすると、
xtreg y cohort time cohort##time
あるいは\(D = cohort*time\)としておいてから、
xtreg y cohort time D
とすれば、cohort##timeあるいは\(D\)の項の係数の検定を施行することになる。
\(D\)はダミー変数なので、例えばcohortが\(= 2, 5\)あるいは\(=a, b\)などとしても問題ない。解析の時に
xtreg y cohort time ib(2).D
xtreg y cohort time ib("a").D
などとすれば結果は同じである。
コメント
[…] https://www.stata.com/symposiums/biostatistics-and-epidemiology21/slides/Bio21_Bellavia.pdfhttps://www.stata.com/meeting/italy13/abstracts/materials/it13_grotta.pdf共変量と交絡因子Difference in Difference 差の差分法 […]