双重差分法可以理解为对随机分配实验的一种模拟,在没有随机实验的情况下去验证因果关系。
步骤:
对于每一个个体 i i i,其对应指标的公式化表达如下,类似线性回归的形式
y i , t = γ s ( i ) + λ t + δ ⋅ p o s t + ϵ i , t y_{i,t} = \gamma_{s(i)} + \lambda_t + \delta \cdot post + \epsilon_{i,t} yi,t=γs(i)+λt+δ⋅post+ϵi,t
其中 s ( i ) s(i) s(i)表示组别变量,post表示政策实施与否(未实施则为0,实施则为1)
我们需要计算的DID可以表示为下式:
δ ^ = ( y ˉ T , 1 − y ˉ T , 0 ) − ( y ˉ C , 1 − y ˉ C , 1 ) \hat{\delta} = (\bar{y}_{T,1} - \bar{y}_{T,0}) - (\bar{y}_{C,1} - \bar{y}_{C,1}) δ^=(yˉT,1−yˉT,0)−(yˉC,1−yˉC,1)
即实验组干预前后的均值的差减去对照组干预前后均值的差
将上式的双重差分思想写成经典的双重差分模型:
Y i , t = β 0 + β 1 s ( i ) + β 2 p o s t i , t + δ s ( i ) ∗ p o s t i , t + ϵ i , t Y_{i,t} = \beta_0 + \beta_1 s(i) + \beta_2 post_{i,t} + \delta s(i)*post_{i,t} + \epsilon_{i,t} Yi,t=β0+β1s(i)+β2posti,t+δs(i)∗posti,t+ϵi,t
因为只有同时满足是实验组且是政策实施后的群体才能表现出差异,所以重点观察系数 δ \delta δ
双重差分利用的是面板数据
样本数据需要满足下面三个假设(第三个需要重点关注):
画出实验组时期和对照组时期的时间趋势图;若两条线走势完全一样或者基本一致,则满足共同趋势(CT)假设。
或者通过平行趋势检验:
Y i , t = ∑ t = − q − 1 δ t D t s ( i ) + ∑ t = 0 m γ t D t s ( i ) + λ t + X i , t + ϵ i , t Y_{i,t} = \sum_{t=-q}^{-1}\delta_t D_t s(i) + \sum_{t=0}^m\gamma_t D_t s(i)+ \lambda_t + X_{i,t} + \epsilon_{i,t} Yi,t=t=−q∑−1δtDts(i)+t=0∑mγtDts(i)+λt+Xi,t+ϵi,t
该模型中包括了政策之前和之后若干期的虚拟变量 D t D_t Dt ,即可用于检验平行趋势是否成立,也可估计政策施行每一期效果具体大小, λ t \lambda_t λt代表时间固定效应。系数 δ t \delta_t δt用于检验平行趋势是否成立,若系数不显著则平行趋势成立;系数 γ t \gamma_t γt度量的是政策实行后每一期的效果大小,若显著则说明该期政策效应存在。
如果原来的结果稳健的话,虚构模型下的结果都不应该显著。如果显著,就回过头去检查之前的模型和结果是否有问题。
如果一致则没有问题。
use panel101,clear
gen time = (year >= 1994)&!missing(year)
gen treated = (country >4)&!missing(country)
egen mean_y=mean(y), by(year treat)
twoway (connect mean_y year if treat==1,sort) (connect mean_y year if treat==0,sort lpattern(dash)), ///
xline(1994,lpattern(dash) lcolor(gray)) ///
ytitle("y") xtitle("年度") ///
ylabel(,labsize(*0.75)) xlabel(,labsize(*0.75)) ///
legend(label(1 "处理组") label( 2 "控制组")) ///图例
xlabel(1990 (1) 1999) graphregion(color(white)) //白底
use panel101,clear
gen time = (year >= 1994)&!missing(year)
gen treated = (country >4)&!missing(country)
diff y, t(treated) p(time)
在10%的显著性水平上,政策实施有显著的负效应;
以上的基准回归只有当地区在政策前足够相似才能够保证DID提取的是政策的因果效应,所以研究者需要知道两组地区在政策前有多大差异。实现这一目标的方法是将年份虚拟变量乘以实验组虚拟变量,这一交互项就可以捕捉两组地区在每一年份的差异。
如果两组地区的确有着平行趋势的话,那么预期在1994年前的那些交互项的回归结果将不显著,而1994年后的将显著。
// 平行趋势检验
gen Dyear = year-1994
gen Before3 = (Dyear==-3&treated==1)
gen Before2 = (Dyear==-2&treated==1)
gen Before1 = (Dyear==-1&treated==1)
gen Current = (Dyear==0&treated==1)
gen After1 = (Dyear==1&treated==1)
gen After2 = (Dyear==2&treated==1)
gen After3 = (Dyear==3&treated==1)
**将以上交互项作为解释变量进行回归
xtreg y time treated Before3 Before2 Before1 Current After1 After2 After3 i.year, fe
eststo reg
可以看出Before3 Before2 Before1 的系数均不显著,After1的系数负向显著
采用coefplot命令画图: 查看系数的变化
结果发现系数在政策前的确在0附近波动,而政策后一年系数显著为负,但很快又回到0附近。这说明实验组和控制组的确是可以进行比较的,而政策效果可能出现在颁布后一年,随后又很快消失。
政策的实施确实产生了政策效应,且政策实施前实验组和控制组不存在显著性差异,但是通过DID估计出的政策效应是否受其他政策或因素的影响是未知的,因此需要进行安慰剂检验。
将研究样本设定在1990-1994间,并将政策年份设定在1992年
//安慰剂检验
gen time_new = (year>=1992) & !missing(year)
gen treated_new = (country>4) & !missing(country)
gen did_new = time_new*treated_new
reg y time_new treated_new did_new x1-x3 i.opinion if year<=1994, r
结果显示,did_new的系数为负,但是不显著,表明可以排除其他潜在的不可观测因素的影响,即估计出的政策效应是稳健的。