双重差分法(Difference-in-Differences,DID)是政策评估和因果推断中最常用的计量方法之一。本文将从计算原理、操作步骤、代码实现到学习提议,系统解析你可能关心的核心问题。
一、DID的计算逻辑与公式推导
1. 基本概念:何为”双重差分”?
DID的核心是通过两次差分计算政策效应:
- 第一次差分:处理组在政策实施前后的变化(时间维度)
- 第二次差分:处理组与对照组的差异变化(空间维度)
2. 经典双重差分公式
案例:假设评估某城市最低工资政策对就业的影响:
组别政策前就业率政策后就业率差分处理组65%58%-7%对照组63%61%-2%政策效应 = (-7%) – (-2%) = -5%
二、DID计算的详细步骤
Step 1:数据准备
- 数据结构:面板数据(个体/地区 × 时间)
- 处理组标识:生成虚拟变量treated(1=处理组,0=对照组)
- 时间标识:生成虚拟变量post(1=政策后,0=政策前)
Step 2:模型设定
基础回归模型:
关键系数解释:
- δ → 双重差分估计量(政策效应)
- β → 处理组与对照组的固有差异
- γ → 时间趋势的共性影响
Step 3:Stata代码实现
// 传统DID回归
reg Y treated post treated_post, robust
// 多期DID(面板数据)
xtset id year
reghdfe Y treated_post, absorb(id year) vce(robust)
三、必知的难点与常见误区 ❗
误区1:忽视平行趋势检验
平行趋势假设是DID有效性的基石!必须在政策前检验处理组与对照组是否具有一样的时间趋势。
检验方法:
// 生成事件研究虚拟变量
forvalues j = -3/2 {
gen D_`j' = (year == policy_year + `j') & treated
}
reg Y D_*-3 D_-2 D_0 D_1 D_2
判断标准:政策前的系数应不显著(趋势平行)
误区2:误用多期DID方法
当政策实施时间不同步时(如各城市试点时间不同),传统DID会产生偏误。此时需要交叠DID方法:
- Bacon分解:诊断传统TWFE模型的问题
- CSDID命令(Callaway & Sant'Anna方法)
csdid Y X, ivar(id) gvar(first_treated)
四、为什么需要系统学习DID?
通过上述内容你可能发现:
- 看似简单的公式背后有复杂的假设检验
- 模型扩展(空间DID、动态处理效应等)需结合前沿方法
- 代码实现中的参数选择直接影响结果可信度
学习提议:DID方法的掌握需要理论+代码+文献解读的三维训练。我们推荐JG学术培训的《双重差分DID方法专题》课程,其中:
- 覆盖传统DID→交叠DID→空间DID全链条方法
- 提供可复用的Stata代码库(含最新csdid、sdid命令)
- 精讲《中国工业经济》等顶刊的论文复现案例
该课程已协助数百位学员在《统计研究》《经济学(季刊)》等核心期刊发表成果,通过「方法论→代码→发表」的闭环训练,真正实现科研落地。
五、学习路径规划
如果您希望深入掌握DID方法:
- 基础阶段理解DID假设条件与模型设定掌握平行趋势检验方法
- 进阶阶段学习交叠DID与异质性处理效应实践空间DID(SDID)的矩阵构建
- 高阶应用动态处理效应可视化政策评估的敏感性分析
立即提升:关注JG学术培训公众号,获取《DID方法学习路线图》及最新Stata命令包(含未公开的sdid扩展模块)。
DID核心概念
无论您是初学计量方法,还是需要突破研究瓶颈,系统化的学习都能帮您少走弯路。选择经过5年17期迭代验证的课程体系,让您的学术进阶之路更高效!


