手把手教你学多时点DID(1)

1. 引言双重差分法 (DID) 作为目前政策评估方法中非常流行的一种方法,广泛应用于社科研究的各个领域。现有文献中关于该方法的应用多而零碎,给初学者的学习与选择带来了一定困难。因此,为了提升文献阅读与方法应用效率,系统学习 DID 是十分有必要的。
本推文将从基本模型介绍、前期数据准备、基准回归、平行趋势检验、安慰剂检验以及 PSM-DID 等整体流程入手,采用模型分析与实例结合的形式对多时点 DID 模型进行讲解。
2. 模型介绍我们以经典 DID 模型为例:
$$
Y_{i,t}=\alpha _0+\alpha _1DID_{i,t}+\alpha \sum{X_{i,t}}+\mu _i+\lambda _t+\varepsilon _{i,t}
$$
DID_{i,t} 为政策虚拟变量,本质是 treat {_i}\times post {_t}。treat {_i} 为个体虚拟变量,政策实施个体均取值为 1,其余为 0; post {_t} 为时间虚拟变量,政策实施当年及以后取值为 1,其他为 0。(DID_{i,t} 与 post {_t} 在数值上相同)
3. 数据准备我们以白俊红等(2022)的论文数据为例,以国家创新型城市试点政策实施为准自然实验,展示如何用代码构造变量 DID_{i,t}。需要注意的是该文中 city=147 的城市政策实施时间为 2010 年,但是 did 却从 2012 开始计算。后续分析中本推文将其调整至 2010 年,所得结果可能与原文有细微差异,但不影响方法学习。
(1)准备面板数据,即不含 DID_{i,t} 相关变量在内的论文实证数据,需要包括个体 id,便于下文匹配。
(2) 准备政策实施样本,并构造政策实施时间变量:policy(便于区分原文变量,用 pt 表示),示例如下:
| city | pt |
---------------
| 3 | 2010 |
| 4 | 2010 |
| 5 | 2011 |
| 14 | 2010 |
| 25 | 2011 |
| 26 | 2010 |
| 34 | 2010 |
| 35 | 2010 |
| ... | ... |
(3) 代码操作
use inno_policy,clear //面板数据,由于原文中存在相关变量,故对变量名做了修改
merge m:1 city using inno_pt //在全样本中匹配处理组样本政策时间
drop _merge
replace pt=0 if pt==. //对照组样本policy=0
g Treat=0
replace Treat=1 if pt~=.
g Post=0
replace Post=1 if pt==2008&year>=2008
replace Post=1 if pt==2010&year>=2010
replace Post=1 if pt==2011&year>=2011
replace Post=1 if pt==2012&year>=2012
replace Post=1 if pt==2013&year>=2013
replace Post=1 if pt==2018&year>=2018 //对创新政策实施不同年份分别进行替换
gen did=Treat*Post //Post与did 在数值上相等
4. 基准回归DID 模型中的基本回归命令与面板回归命令基本一致,应用比较普遍的是xtreg与reghdfe。对于xtreg命令的使用已较为成熟,此处不再赘述。reghdfe命令可以解决多维固定效应问题,而且运行速度较快,因而备受青睐。关于reghdfe的具体介绍可以参考reghdfe:多维面板固定效应估计与多维面板固定效应估计
秦利宾,连享会推文,关于reghdfe命令常见问题解答