DID模型

政策评估 (Policy Evaluation) 是当前公共经济学和劳动经济学中最常用的实证方法。其目的在于评价一项既有政策的效果,此类研究关注的是该政策的处理效应 (Treatment Effect)。由于政策往往是对一类特定的人群起作用,政策评估的基本思想是将这类人群与其他人群进行比较。目前,双重差分模型 (Difference-in-Differences) 是用于政策评估的常用模型。

1.1 因果识别思路

  • 对特定个体iD_{i,j}=1  表示第j  期的个体i  受到政策影响 (处理组),D_{i,j}=0 表示第j    期的个体i  不受政策影响 (控制组);

  •  Y^{_{i,j}^{1}}为个体 i 受政策影响时的结果 (outcome), Y^{_{i,j}^{0}}为不受政策影响时的结果;

  • 虽然个体i  不可能同时属于处理组和控制组,不可能同时观测到Y^{_{i,j}^{1}}  与 Y^{_{i,j}^{0}},但双重差分模型用同一个体不同时期处理状态相反的结果来构造反事实,进而估计出某一政策的实施结果。

DID模型_第1张图片

DID模型_第2张图片

双重差分需满足共同趋势这一前提假设,也就是说实验组和控制组在政策施行之前并不存在显著差异,因此使用 DID 方法时需要进行平行趋势检验,即对政策施行之前的实验组和控制组特征是否相似进行检验。 

1.2 截面数据 vs 面板数据

  • DID的数据结构:面板数据最佳,重复截面数据也可以;

  • 重复截面数据:数据组成必须是稳定的:

    • 不同时点上的数据都是总体的代表性样本;

    • 可以允许组别固定效应;

  • 面板数据:可以使用个体固定效应,更加稳健。

1.3 常见计量模型设定

政策施行时间一致:

政策逐步施行:

当政策逐步推进时,不存在明确的实验组和控制组划分,此时回归模型保留了时间固定效应T_{t}  以及交乘项 D_{i}xT_{t}  估计政策实行效果。同样可以加入一系列控制变量X_{it}  控制可能干扰政策施行的影响因素。

平行趋势检验:

该模型中包括了政策之前和之后若干期的虚拟变量D_{t}  ,即可用于检验平行趋势是否成立,也可估计政策施行每一期效果具体大小,\lambda _{t}代表时间固定效应。系数\delta _{t}  用于检验平行趋势是否成立,若系数不显著则平行趋势成立;系数\gamma _{t}  度量的是政策实行后每一期的效果大小,若显著则说明该期政策效应存在。

2. Stata实现

2.1 政策施行时间一致

keep if inlist(Year,2002,2003)  //保留政策施行时间一致的观测值
reg y Treat##After

2.2 政策逐渐施行

eststo m1: reg y  i.id i.Year Treat_x_After  //混合OLS回归
xtset id Year
eststo m2: xtreg y i.Year Treat_x_After, fe  //面板固定效应
local m "m1 m2"
esttab `m', nogap  replace not b(%4.2f) s(N r2_a) //输出回归结果

2.3 平行趋势检验

以 nlswork.dta 数据为例,假定一项外生政策在 78 年实施,试点组由 idcode 大于 2604 的观测值构成:

webuse nlswork, clear 
xtset idcode year, delta(1)  //设置成面板数据

gen post = (year >= 78) 
gen treated = (idcode > 2604)
levelsof year, local(localyear) //判断年份的情况
return list
qui sum year 
return list

进一步,生成政策之前和之后每一期的虚拟变量 coeff69 - coeff88

local yearmin = r(min) 
foreach i of local localyear {   
  local j = `i' - 78   
  if `i' > `yearmin'{   
    gen coeff`i' = (year == `i' & treated == 1)   
    label var coeff`i' "`j'"   
    if `i' <= 78 {   
      local countsmall78 = `countsmall78' + 1   
    }   
  }  
}

利用面板固定效应估计回归结果:

. global controlx "c.age##c.age c.ttl_exp##c.ttl_exp i.south i.race i.year" //设定控制变量
. xtreg ln_w coeff* $controlx, fe robust 
. est store dynamic

可以看出,在政策实行之前的系数 coeff69 - coeff77 基本不显著,政策实行之后的系数 coeff78coeff80 和 coeff82 显著异于0。

做图:可以使用 coefplot 命令将平行趋势检验和各期政策效果以图形的形式表示出来。

coefplot dynamic, keep(coeff*) vertical recast(connect) yline(0) ///
>     xline(`countsmall78') ciopts(recast( > rline) lpattern(dash))

你可能感兴趣的:(stata,公司金融,1024程序员节)