温馨提示:若页面不能正常显示数学公式和代码,请阅读原文获得更好的阅读体验。

作者: 林芷涵 (首都经济贸易大学)
邮箱: zhihan_lin0211@163.com

  • 分类:倍分法 DID
  • Title: StatsPAI:交叠 DID 方法太多,到底怎么选?
  • Keywords: 双重差分法,交叠 DID,渐进 DID, Staggered DID, 交错 DID, 异质性处理效应,因果推断,Bacon 分解, Callaway-Sant'Anna 方法,Sun-Abraham 方法,Borusyak-Jaravel-Spiess 方法,平行趋势假设,稳健估计量,csdid, drdid, StatsPAI 包

导读

交叠 DID 已经成为政策评估中的常见场景:不同地区、企业或个人并不是在同一年受到政策影响,而是分批进入处理状态。问题在于,传统双向固定效应模型在处理效应存在异质性时,可能把早处理组、晚处理组和已处理组放在一起做不合适的比较,进而产生难以解释的加权结果。

本文不试图完整综述所有交叠 DID 文献,而是围绕一个更实际的问题展开:实证研究中到底应该如何选择估计方法?文章先说明 Bacon 分解、Callaway-Sant'Anna、Sun-Abraham、Borusyak-Jaravel-Spiess 和 de Chaisemartin-D'Haultfœuille 方法分别适合什么场景,再以 Python 工具包 StatsPAI 为例,展示一套从数据诊断、主估计、动态效应到结果报告的最小可复现流程。

1. 交叠 DID 不能只报告 TWFE 的结果

DID 的基本想法并不复杂:如果某项政策只影响一部分样本,那么可以比较处理组和对照组在政策前后的变化差异。麻烦出现在更常见的多期场景中:政策不是一次性覆盖所有处理组,而是分批实施。

例如:

  • 某项环保政策在 2013 年先覆盖第一批城市,2015 年覆盖第二批城市,2017 年覆盖第三批城市;
  • 某项产业政策分年度扩围,不同企业进入政策名单的年份不同;
  • 某项金融改革先在试点地区推行,随后逐步扩展到其他地区。

这类数据结构通常被称为 交叠 DID (staggered DID),也常被称为交错 DID、渐进 DID 或多时点 DID。设 EiEi​ 表示个体 ii 首次接受处理的时间,处理变量可以写为:

Dit=1{t≥Ei}Dit​=1{t≥Ei​}

其中,Dit=1Dit​=1 表示个体 ii 在 tt 期已经处于处理状态。若不同个体的 EiEi​ 不同,就形成交叠处理时点。

传统 TWFE 模型通常写为:

Yit=αi+λt+βDit+εitYit​=αi​+λt​+βDit​+εit​

其中,αiαi​ 是个体固定效应,λtλt​ 是时间固定效应,ββ 被解释为平均处理效应。这个模型的问题在于,它隐含了较强的处理效应同质性假设。如果不同批次处理组的政策效应不同,或者政策效应随处理后时间逐渐变化,那么一个单一的 ββ 往往无法清楚回答研究问题。

图 1:交叠 DID 数据结构与 TWFE 比较逻辑

Goodman-Bacon (2021) 的分解结果说明,交叠处理时点下的 TWFE 估计量可以理解为许多 2×2 DID 比较的加权平均:

β^TWFE⁡=∑kwkβ^k2×2β^​TWFE​=k∑​wk​β^​k2×2​

其中,β^k2×2β^​k2×2​ 表示某一个局部 2×2 DID 比较,wkwk​ 表示对应权重。问题不在于「分解」本身,而在于某些比较并不符合直觉。例如,较晚接受处理的组在早期可以作为对照组;但较早接受处理的组在后期已经受到政策影响,若再被用作较晚处理组的对照,就会形成所谓的 forbidden comparison。

因此,在交叠 DID 中,TWFE 可以作为一个参照结果,但不宜机械地作为唯一主估计。实证论文通常还需要说明:对照组来自哪里,估计对象是什么,处理效应是否允许随组别和时间变化。

2. 先看数据结构,再选估计方法

方法选择不应从「哪个估计量更流行」开始,而应从数据结构和研究目标开始。交叠 DID 至少要先回答五个问题:

  • 处理是否为吸收状态,即一旦处理后是否持续处理?
  • 样本中是否存在从未处理组 (never-treated group)?
  • 是否可以使用尚未处理组 (not-yet-treated group) 作为对照?
  • 研究重点是总体平均效应,还是动态事件研究效应?
  • 是否需要控制协变量,且希望使用双重稳健估计?

图 2:交叠 DID 方法选择决策树

更实用的选择逻辑可以概括为下表。

研究者面对的问题 更合适的起点 解释
只是想知道 TWFE 是否可能有问题 Bacon 分解 诊断 TWFE 中不同 2×2 比较的来源和权重结构
希望估计总体平均处理效应 CS 或 BJS 二者都允许处理效应异质性,适合作为主估计或稳健性估计
希望画事件研究图 SA、CS 动态聚合或 BJS 动态估计 不要直接使用传统 TWFE leads and lags
样本中有从未处理组 CS、SA、BJS 均可考虑 never-treated 通常是更直观的对照组
样本中没有从未处理组 CS 使用 not-yet-treated,或考虑 BJS 需要检查后期是否仍有足够未处理观测
处理状态可能反复切换 dCDH / did_multiplegt 传统 CS、SA、BJS 通常默认处理状态吸收
担心平行趋势只是近似成立 Rambachan-Roth / HonestDID 用敏感性分析替代「一检验通过就放心」的做法

这个表的含义不是让研究者每篇论文都跑所有方法,而是强调估计量要服务于研究设计。若政策确实是分批进入、处理后持续生效、且研究目标是平均处理效应,那么 CS 或 BJS 可以作为自然起点;若论文重点是政策效果的动态变化,则需要重点报告事件时间上的处理效应曲线;若政策有退出、撤销或反复进入,则应考虑允许处理状态切换的方法。

3. 几类方法分别解决什么问题?

3.1 Bacon 分解:先诊断 TWFE 比较结构

Bacon 分解不是一个新的主估计量,而是一个诊断工具。它告诉我们,TWFE 的结果由哪些局部 DID 比较构成,以及每类比较占多大权重。

在交叠 DID 中,比较大致包括三类:

  • 早处理组 vs 从未处理组;
  • 晚处理组 vs 从未处理组;
  • 早处理组 vs 晚处理组,或晚处理组 vs 已处理组。

第三类比较最容易出问题。因为已经处理过的组不再是干净的反事实。如果政策效应具有动态变化,或者早晚处理组效应大小不同,这类比较会污染 TWFE 系数。

温馨提示:若页面不能正常显示数学公式和代码,请阅读原文获得更好的阅读体验。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐