双重差分法(Diff-in-diff)
概念
- 常用于评估宏观干预措施的效果,比如一个宏观政策颁布(e.g.三明医改)后,它对整个医疗体系的医生的工资的变化如何呢?
- 这时候我们可以考虑以下双重差分法来进行因果推断
DID估计量
我们假设D为处理变量,T为时间变量,设YD(T)为T时期下处理D的潜在结果,换句话说,这是反事实。倘若我们能够观测到反事实的理想情况下(比如我们有哆啦A梦的时光机),我们可以在哆啦A梦的世界里这样估算干预的处理效应:
ATET^=E[Y1(1)−Y0(1)∣D=1]
但显然的是,我们并没有时光机,我们没办法探索反事实的结果。但我们可以很显然想到,那我们可以用一些其他的结果来代替这个反事实推断。一方面:我们假设前后趋势一样,那么我们自然可以用先前时间的效果来替代反事实推断:
E[Y(0)∣D=1]=E[Y0(0)∣D=1]=E[Y1(0)∣D=1]
于是乎,我们就有了:
ATET^=E[Y(1)∣D=1]−E[Y(0)∣D=1]
但显然一个问题在于:没有干预的情况下,后面的结果会与前面的结果相同,但这真的会这样吗?回到三明医改的例子,我们可以想象,医生的工资真的会完全不变吗(虽然可能有些人会认为难说)。显然,这并不符合常理。
那我们考虑另一方面,我们不用时间了,我们现在都政策实施了,但有一个地方的政策没实施,我们拿它对比不就好了。这个我们假设空间是一样的,这样我们也可以得到相同时间不同空间的反事实推断的结果:
E[Y(1)∣D=0]=E[Y0(1)∣D=0]=E[Y0(1)∣D=1]
于是乎,我们就有了:
ATET^=E[Y(1)∣D=1]−E[Y(1)∣D=0]
回到例子,一样的,我们现在都到了三明医改后的时期了,但此时,还是有地方没有实施三明医改,于是乎,我们拿这个地方假装为三名医改前的时期的工资水平。但很显然,也是不合理的,毕竟不同地区的工资水平不一样。
于是乎我们在想,我们计算它的趋势就好了,就跟我们算未来工资的时候,我们会想通货膨胀率是否会比工资增长的快呢?因此我们同时考虑时间和空间的话,就最好了
E[Y0(1)∣D=1]=E[Y0(0)∣D=1]+(E[Y0(1)∣D=0]−E[Y0(0)∣D=0])
同样的我们也会假设,这两个地区的工资增长可能是一样的,这个假设看着就稍微合理了一些(当然你不能拿两个国家形式完全不一样的比),换更严谨的说法:处理与对照的变化趋势是一致的:
E[Y0(1)−Y0(0)∣D=1]=E[Y0(1)−Y0(0)∣D=0]
然后我们代入:
ATET^=E[Y(1)∣D=1]−E[Y0(1)∣D=1]=E[Y(1)∣D=1]−(E[Y0(0)∣D=1]+(E[Y0(1)∣D=0]−E[Y0(0)∣D=0]))≈E[Y(1)∣D=1]−(E[Y(0)∣D=1]+(E[Y(1)∣D=0]−E[Y(0)∣D=0]))=(处理前后的处理组E[Y(1)∣D=1]−E[Y(1)∣D=0])−(处理前后的对照组E[Y(0)∣D=1−E[Y(0)∣D=0])
估计量的标准误
那么,标准误呢?
我们只进行了点估计,对于标准误,我们会用到线性回归
同样的,我们假设两个变量,对于上述的例子:
SMi代表三明地区,当i = 0 时,我们不妨假设是莆田;而YGi代表了医改的处理,当i=0时,我们认为在这个时间之前是没有宏观政策的影响。那么Y即代表了工资水平,则有
Yi=β0+β1⋅SMi+β2⋅YGi+β3⋅SMi∗YGi+ei
在这里,β0+β1是三明地区没实现医改前的工资,β0+β2是莆田地区实现医改后的工资。β1即从控制组转向处理组的增量,β2是干预前到干预后的增量。那么若我们全部把虚拟变量打开,即β0+β1+β2+β3是医改后三明地区的工资。因此β3即是干预前后,从莆田到三明的工资增量影响,即是ATET^
假设
我们之前提到了,我们一个假设在于控制组和处理组的增量相同,即平行趋势。那么很容易想到,若无法满足平行趋势,那么自然也会产生偏误。因此我们需要去验证这种平行关系是否存在。若平行趋势不存在时,我们可以使用合成控制法解决,可以整合多个城市来构建一个合成城市(Pooling),类似于(市与省的关系),使其趋势与目标地区都吻合。但显然,如果我们使用聚合数据,我们就没有办法构建置信区间(因为我们没办法得到β0和β1)。当然缺少具体医生的工资时,我们仍然可以通过均值来估计DID从而推测因果效应,但由于是个体在一个均值水平上聚合,我们自然无法考虑到每个人的工资的异质性(不同职称),所以无法求解方差。