双重差分(DID)
Staggered DIDDIDEvent Study

Staggered DID:TWFE偏误与新估计量(CS/SA/BJS)

深度讲解交错DID中TWFE的偏误问题,介绍Callaway-Sant'Anna、Sun-Abraham、Borusyak-Jaravel-Spiess三种新估计量的原理与实操。

作者:计量科研导航站发布:2025-03-20更新:2025-03-25★★★

本文结构

  1. 原理:TWFE 在交错处理下为何有偏
  2. 直觉:负权重问题的直观理解
  3. 代码:CS/SA/BJS 三种估计量的 Stata 实现对比

第一层:原理

TWFE 为什么有偏?

在标准的交错处理设定下,TWFE 估计量:

Yit=αi+λt+τDit+εitY_{it} = \alpha_i + \lambda_t + \tau \cdot D_{it} + \varepsilon_{it}

其中 Dit=1[tGi]D_{it} = \mathbf{1}[t \geq G_i]GiG_i 是个体 ii 开始接受处理的时间。

问题:TWFE 的 τ^\hat{\tau} 是所有 2×22 \times 2 DID 估计量的加权平均,但权重可能为负数

τ^TWFE=gtwg,tτg,t\hat{\tau}_{TWFE} = \sum_g \sum_t w_{g,t} \cdot \tau_{g,t}

wg,t<0w_{g,t} < 0 时,即使所有 τg,t>0\tau_{g,t} > 0τ^TWFE\hat{\tau}_{TWFE} 可能为负或严重偏离真实 ATT。

三种新估计量

估计量 核心思想 控制组定义
Callaway & Sant'Anna (2021) 按 cohort-time 分别估计,再聚合 从未处理 + 尚未处理
Sun & Abraham (2021) Interaction-weighted 估计量 从未处理
Borusyak, Jaravel & Spiess (2024) Imputation 方法,先估计 Y(0)Y(0),再求差 从未处理 + 尚未处理

第二层:直觉

负权重的直观理解

想象三个州分别在 2010、2012、2014 年实施政策。当 TWFE 估计 2012 州的效应时,它会把 2010 年已处理的州当作"控制组"——但这些州已经受到了处理!

如果早处理州的效应在增长,用它们做"控制"会低估后处理组的效应,甚至产生负的权重。


第三层:Stata 代码

// ═══════════════════════════════════════════════
// Staggered DID:TWFE vs CS vs SA
// ═══════════════════════════════════════════════
 
clear all
set seed 11111
 
// 模拟交错处理数据
local N = 300
local T = 15
set obs `=`N'*`T''
gen id = ceil(_n/`T')
bysort id: gen t = _n + 2005
 
gen treat_time = .
replace treat_time = 2010 if id <= 100
replace treat_time = 2012 if id > 100 & id <= 200
 
gen treated = (t >= treat_time) if treat_time != .
replace treated = 0 if treat_time == .
 
// 异质处理效应
gen tau = 0
replace tau = 2 if treated == 1 & treat_time == 2010
replace tau = 4 if treated == 1 & treat_time == 2012
gen y = 1 + 0.5*t + tau + rnormal(0, 1)
 
// ═══ TWFE(有偏)═══════════════════════════
reghdfe y treated, absorb(id t) cluster(id)
 
// ═══ Callaway & Sant'Anna ═══════════════════
gen gvar = treat_time
replace gvar = 0 if treat_time == .
csdid y, ivar(id) time(t) gvar(gvar) agg(simple)
csdid y, ivar(id) time(t) gvar(gvar) agg(event)
csdid_plot

完整代码文件可在代码库下载。


参考文献

  • Callaway, B., & Sant'Anna, P. H. C. (2021). Difference-in-Differences with Multiple Time Periods. Journal of Econometrics, 225(2), 200-230.
  • Sun, L., & Abraham, S. (2021). Estimating Dynamic Treatment Effects in Event Studies with Heterogeneous Treatment Effects. Journal of Econometrics, 225(2), 175-199.
  • Borusyak, K., Jaravel, X., & Spiess, J. (2024). Revisiting Event-Study Designs: Robust and Efficient Estimation. Review of Economic Studies.
  • de Chaisemartin, C., & D'Haultfœuille, X. (2020). Two-Way Fixed Effects Estimators with Heterogeneous Treatment Effects. AER, 110(9), 2964-2996.

关联代码文件