在实证研究领域,双重差分法(DID)因其直观的逻辑和相对容易实现的特点,成为政策评估的黄金标准。但真正做过DID研究的人都知道,从课堂上的理论模型到实际发表的研究成果之间,横亘着无数个可能让整个分析功亏一篑的细节陷阱。本文将聚焦那些教科书上不会教、但实践中至关重要的五个关键环节。
很多教材中的DID案例都假设政策在某一个时点统一实施,但现实中更多见的是"渐进式改革"。比如某省2015年开始试点某项政策,2017年推广到全省,2019年全省全面实施。这种情况下,传统的Treat×After设定就不再适用。
正确做法是构建一个连续型处理变量,反映每个个体接受政策影响的强度或时长。例如:
stata复制gen treatment_intensity = 0
replace treatment_intensity = 0.5 if year>=2015 & province=="A" //试点阶段
replace treatment_intensity = 1 if year>=2017 & province=="A" //推广阶段
replace treatment_intensity = 1 if year>=2019 //全面实施
注意:渐进式DID中,平行趋势检验需要特别关注早期试点地区与后期推广地区在试点前的趋势是否一致。
常见错误包括:
平行趋势检验远不止是看回归系数是否显著那么简单。一个完整的检验应该包含三个维度:
stata复制eventstudyinteract y, window(5) control(control_vars) absorb(id year)
典型案例:某研究检验最低工资政策的影响时,发现处理组(高工资地区)和控制组在政策前趋势"统计上不显著",但经济上差异明显——处理组本身处于经济上升期。这种情况下,简单的统计不显著并不能保证共同趋势假设成立。
控制变量不是越多越好,也不是越少越好。一个好的DID模型应该:
实用建议:
| 控制策略 | 适用场景 | 风险提示 |
|---|---|---|
| 不控制任何变量 | 随机实验 | 现实政策很少满足 |
| 控制基线特征 | 截面差异大 | 可能遗漏动态因素 |
| 控制时间趋势 | 长期数据 | 可能吸收政策效应 |
很多人忽略了面板数据和重复截面数据的本质区别。实际上:
面板数据优势:
重复截面数据要求:
Stata操作差异:
stata复制// 面板数据标准做法
xtset id year
xtreg y treated##post, fe robust
// 重复截面数据
areg y treated##post, absorb(year) vce(cluster region)
最后一步也是最容易出错的环节——如何解读DID系数。需要警惕:
解决方案:
例如,某研究发现政策使就业率提高了2个百分点(p<0.01),看似显著。但进一步计算发现:
真正严谨的DID研究,应该像侦探破案一样,不断寻找证据链中的薄弱环节,用多种方法交叉验证。记住,好的实证研究不在于方法多么复杂,而在于对每一个细节的极致把控。