Towards Data Science

Difference-in-Differences vs Lagged-Outcome Regression

8.5内容质量

TL;DR · AI 摘要

双重差分法(DiD)与滞后结果回归在产品分析中需根据预处理期假设选择,模拟研究揭示了两种方法的适用条件。

核心要点

  • DiD假设平行趋势,滞后结果回归假设无混淆,需根据数据特征选择。
  • 双重稳健方法可同时兼容两种模型,提升估计鲁棒性。
  • 预处理期数据检查能有效判断哪种假设更接近真实场景。

结构提纲

按章节快速跳转。

  1. 产品分析中自选处理的因果效应估计面临两大方法论选择。

  2. DiD与滞后结果回归的假设条件及适用场景存在本质差异。

  3. 通过预处理期数据生成验证两种方法在不同假设下的表现差异。

  4. Doubly Robust方法可同时兼容两种模型的假设条件。

  5. 预处理期数据检查是选择方法的关键步骤。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • 因果推断方法选择
    • 核心方法对比
      • DiD
        • 平行趋势假设
      • 滞后结果回归
        • 无混淆假设
    • 验证工具
      • 预处理期检查
      • 双重稳健估计

金句 / Highlights

值得收藏与分享的关键句。

#因果推断#统计学#产品分析#机器学习
打开原文

双重差分法 vs 滞后结果回归 | Towards Data Science

数据科学

双重差分法 vs 滞后结果回归

一项模拟研究和预处理期检查,用于在产品分析中选择适合自选处理的正确设计。

Ryan OSullivan

2026年10月29日

12分钟阅读

在Google上推荐我们

分享

两种预处理期模式:每种模式下哪种假设成立?图片由作者提供。

产品分析中的大多数处理都是由用户自主选择的。有人开启某个功能、加入一个社区,或开始使用高级功能的免费试用。虽然没有随机化,但在满足特定假设的情况下,我们仍然可以估计这些自主选择处理的影响。如果没有有效的工具变量或可利用的阈值(即工具变量或断点回归的设置),分析师通常会陷入以下两种方法之一:

  • 滞后结果回归,通常使用双重机器学习进行估计。该方法借鉴了《勇敢者的真实因果推断》并使用了如 EconML 和 CausalML 等库。
  • 双重差分法,源自《Mixtape》并由 Sant'Anna 和 Zhao 的《双重稳健双重差分估计》(2020)等论文更新。

两者都合理,都可以通过相同的双重稳健方法(例如 DoubleML)进行估计。本文的核心观点是:估计方法和识别假设是独立的选择,而假设的正确性决定了结果是否准确。

  • 滞后结果回归假设无混淆性:在控制过去结果和协变量后,不存在未观测的混淆因素。
  • 双重差分法假设平行趋势:如果没有处理,处理组和对照组的结果会同步变化。

这项模拟研究展示了每种假设失效的情况,并给出了选择方法的规则。

1. 滞后结果与双重差分法

滞后结果回归比较的是在处理前具有相同参与历史和特征的处理组与对照组用户。在重新加权或调整以匹配这些历史后,处理后参与度的差异即为处理效应。

双重差分法允许两组在初始水平上存在差异。它假设如果没有处理,两组之间的差距会保持不变,因此处理后差距的变化即为处理效应。实践中,双重差分法通常是条件性的:平行趋势只需在预处理期前具有相同特征的用户中成立。

滞后结果回归可通过回归调整、逆概率加权或双重机器学习进行估计。双重差分法同样有类似方法,从双向固定效应到双重稳健双重差分法均有涵盖。

双重稳健性意味着即使结果模型或倾向得分模型错误,估计值仍能保持有效。但如果识别假设失效,这种方法则无法提供任何帮助。

一个有用的视角是将处理后结果表示为处理前结果的函数:

Y_{\text{post}} = \alpha + \tau D + \beta\, Y_{\text{pre}} + \gamma^{\prime} X + \varepsilon

其中 D 是处理变量,τ 是处理效应,X 是可观测的协变量。τ 表示在控制处理前结果 Y_pre 和协变量 X 后的处理组与对照组差距。

  • 双重差分法将β设为1。从等式两边减去Y pre后,τ变为每个用户变化的处理组与对照组差异。这种方法将所有预处理期的差距视为永久性:处理前使群体产生差异的因素会在处理后完全延续。
  • 滞后结果回归估计β。预处理期参与度包含持续的基线水平和暂时性冲击(如繁忙周或节假日),这些冲击会逐渐消退,因此估计值会低于1。这种方法将部分预处理期差距视为暂时性:初始参与度较低的群体预计会自行部分恢复。

当群体间差距不符合方法假设时,两种设计都会产生偏差。这种情况在两种常见情形中会发生。

2. 两种失效模式

失效模式1:时间不变的混杂因素

以高级会员免费试用为例。高收入用户更可能开始试用,且他们每周参与度通常更高。收入在数月内变化很小,且通常不在数据中,这使其成为未观测到的时间不变混杂因素。

双重差分法能处理这种情况:用户间的恒定差异在减去预处理期后会被抵消。滞后结果回归只能根据过去参与度揭示的收入信息进行调整,因此部分差异仍会体现在估计值中。

失效模式2:基于暂时性低谷的选择

用户常在某些变化发生后立即加入。以召回活动为例:参与度下滑的用户被提供高级会员免费试用,而接受者往往正处于暂时性低谷期。其中许多人即使不接受试用也会自行恢复。Ashenfelter(1978)在就业培训中发现类似模式:无论培训是否有效,学员的收入在入学前会下降,入学后又会恢复。

双重差分法减去每个用户的预处理期数据,其协变量在处理前测量,因此设计中无法解释这种低谷。预处理期数据被压低,恢复过程被计入效果中。如果低谷同时影响处理组和对照组(如节假日周),则不会产生问题,因为对照组的变化会吸收这种影响。滞后结果回归直接基于低谷本身进行调整:它将经历相同低谷的处理组用户与对照组用户进行比较。

要衡量这些偏差,我们需要真实效果已知的数据,所以下一节将模拟这种情况。

3. 一个已知答案的模拟实验

该模拟构建了10,000个用户的周面板数据。每个用户的周参与度(可理解为每周分钟数,典型用户约30分钟)由四个部分组成:

  • 由可观测协变量和未观测时间不变混杂因素决定的基线水平
  • 依赖可观测协变量的趋势
  • 所有用户共享的季节性因素
  • 每周衰减20%的暂时性冲击

每个用户都会获得候选周。处理组用户在该周加入,对照组用户是该周有资格但未加入的用户。该功能每周为每个处理组用户增加2分钟参与度,因此真实效果为2.0。为每个用户模拟了使用和未使用该功能的参与度数据,这使我们能够绘制出真实的反事实数据。

不同场景间的差异在于用户加入的原因。在所有场景中,参与度较低的用户更可能加入。

四种选择场景

场景

用户基于什么加入

无混杂性

平行趋势

a. 仅可观测变量

可观测协变量

成立

b. 时间不变混杂因素

协变量和时间不变混杂因素

不成立

c. 暂时性低谷

/think

covariates 和 engagement 在过去三周的变化

d. 两者都适用

以上所有情况

原始数据展示了每种机制:在 a 中,组间差异仅通过观察到的协变量;在 b 中,接受治疗的用户每周都处于较低水平但并行移动;在 c 中,接受治疗的用户在加入前的三周内出现下降;d 中两者都有。

在每个数据集上,两种设计都以相同的方式进行估计,使用 DoubleML 中的双重机器学习。滞后结果回归使用 DoubleMLIRM,以 ATTE 评分在第 0 至 3 周的平均参与度进行估计。DiD 使用 DoubleMLDIDBinary,以基线窗口(第 -4 至 -1 周)的平均值和后阶段平均值(第 0 至 3 周)进行估计。两种方法都使用 LightGBM 进行结果和倾向模型,五折交叉拟合,并将倾向值截断在 0.01。

下一张图表仅显示接受治疗的用户。橙色表示他们实际做了什么,黑色虚线表示没有该功能时他们本会做的,每条彩色线表示设计假设他们本会做的。设计的估计值是橙色线与自身线在第 0 周后的差距。

  • a. 两条线都位于真实的反事实线上。两种估计都正确。
  • b. DiD 跟踪真实情况。滞后结果线在第 0 周后上升,因为其匹配的对照组回升(失败模式 1),因此低估了效果。
  • c. 真实反事实随着下降效应消退而回升。滞后结果回归跟随其变化。DiD 保持在下降的基线(失败模式 2),因此高估了效果。
  • d. 滞后结果线位于真实值上方,DiD 线位于其下方。一个估计值过小,另一个过大,因此真实值位于两者之间。

一个数据集显示一个样本。为了查看典型估计值及其分布,每个场景模拟了 200 次,两种设计在每次重复中都进行了估计。

每种设计在其假设成立时是无偏的,而在假设不成立时则存在严重偏差。有偏差的设计还具有较窄的置信区间。在场景 b 中,DiD 的 95% 置信区间在 94% 的重复中包含真实效应,而滞后结果回归的置信区间在 0% 的重复中包含真实效应。输出中没有任何内容会提醒你这一点。

滞后结果回归处理下降效应,因为它以滞后结果为条件。那么我们不能通过向 DiD 添加滞后结果来修复它吗?

4. 过去的参与度能否修复 DiD?

一种常见的直觉是通过添加用户在基线窗口之前(第 -8 至 -5 周)的参与度作为协变量,为 DiD 提供更多用户历史信息。Daw 和 Hatfield(2018)表明这可能会适得其反:当组间存在水平差异时,按过去结果进行匹配会将接受治疗的用户与参与度暂时异常的对照组配对,而这些对照组会回归到自身的均值。该研究通过第三种设计 DiD + 基线前参与度来衡量这种做法的成本。

  • 场景 b:平行趋势成立,添加基线前参与度使 DiD 的偏差与滞后结果回归相当(-0.68,滞后结果回归为 -0.70,普通 DiD 为 +0.00)。
  • 场景 c:它有所帮助,因为它部分携带了下降效应,但无法消除偏差(+0.23 对比 +1.01)。
  • 场景 d:它落在 -0.39,而滞后结果回归为 -0.73,普通 DiD 为 +0.81。

因此,它仅在平行趋势已失效的情况下有所帮助,而在此情况下,预趋势检查会引导你使用滞后结果回归,后者能够完全处理下降效应。d 中的结果最接近真实值,仅仅是因为两个偏差恰好部分抵消。当预趋势平坦且 DiD 是正确设计时,它只会造成伤害。

这为每种设计提供了一个协变量规则:

  • 滞后结果回归:以结果历史为条件。此处指的是加入注册前八周每周的参与度、其趋势斜率和最近一次变化,再加上非结果协变量。
  • 双重差分法(DiD):使用基线窗口之前测量的非结果协变量,且不包含基线前的参与度或其他结果历史。

5. 诊断:检查预趋势

选择设计时需观察预处理期。此时尚未进行任何处理,因此处理组与对照组之间的差异仅来自选择偏差(假设用户不会提前改变行为)。

预趋势检查

可以将该检查视为提前一个窗口运行双重差分法。将-8至-5周作为基线,-4至-1周作为处理后阶段。此时尚未有任何处理,如果平行趋势成立,此处的"效应"应为零。仅改变用户水平的混杂因素会被完全抵消,与双重差分法的机制一致,因此b保持平稳。但dip(趋势下降)不会被抵消:在多次模拟中,c在-4至-1周期间的差距平均为-1.33。这正是双重差分法后期将其计入效应时产生的偏差(+1.01)。

该检查与双重差分法设计一致:

  • 以每个用户-8至-5周的平均参与度作为参考水平,并从之后所有周次中减去该值。这消除了水平差异,与双重差分法的机制相同。
  • 与双重差分法设计一致,仅根据非结果协变量对对照组进行加权。
  • 绘制处理组与加权对照组的差距随时间的变化。如果平行趋势成立,该差距在-4至-1周期间应保持在零水平。

a和b保持平稳,c和d出现明显下降。平行趋势在双重差分法存在偏差的相同位置失效。在多次模拟中,该检查识别出了所有c和d的运行情况,以及3%的a和3%的b。2.5阈值使四周内的误报率保持在5%附近。

平稳的预趋势支持平行趋势假设,但不能证明其成立:该检查无法检测到在注册时才开始的因素,例如当周的冲击或用户提前行为,或早于窗口期的下降。当用户数量更少或参与度数据更嘈杂时,真实的违反情况可能被遗漏,这使得通过检查后报告的估计值看起来比实际更可靠(Roth 2022)。

6. 决策规则

| 预趋势检查 | 双重差分法(DiD) | 滞后结果回归 | 报告建议 | |---------|---------|---------|---------| | 平稳 | ✅ | ⚠️(仅当没有时间不变混杂因素时) | 滞后结果回归,双重差分法作为另一边界 | | 下降 | ❌ | ✅(除非同时存在时间不变混杂因素) | 两者均报告 |

失败的检查排除了该双重差分法,而非所有双重差分法。如果下降持续时间较短,只要预处理期在下降前结束,仍可使用。敏感性分析方法(如Rambachan和Roth 2023)展示了当平行趋势被有限程度违反时,估计值会偏离多远。

在实践中,应同时报告两者。当检查显示下降时,双重差分法仍值得报告,因为两个估计值共同界定了真实效应(详见下文常见问题)。如果两者得出相同结论,设计选择无关紧要。如果两个估计值跨越零点或决策阈值,数据无法确定最终结论。

常见问题

为什么两个估计值能界定真实效应?

处理组用户初始水平低于对照组:DiD假设整个差距持续存在,滞后结果回归认为其中一部分会缩小,因此DiD得出的估计值更大。若任一假设成立,真实值应位于两者之间,前提是用户之间的差距不会随时间自行扩大(Ding and Li 2019,基于Angrist and Pischke 2009)。若处理组用户初始水平高于对照组,结论将完全相反。在场景d中两个假设均不成立,但100%的重复实验显示真实值仍位于两个估计值之间,但这是模拟结果,不能保证普遍适用。

当结果变量为用户流失时能否使用DiD?

不能直接使用。流失是吸收状态,用户必须保持活跃才能获得功能,因此分析中所有用户的预处理期流失率均为零。这会导致三个问题:无法检查预趋势;对两组均减去零后,仅剩处理期流失率的简单对比;样本因生存状态被过滤,若参与取决于近期活跃度,可能对两组产生不同影响。

针对流失率,应基于历史状态进行条件分析:使用滞后结果回归,或包含时变协变量的生存模型。本文采用每周活跃度作为指标(非吸收状态),因此两种设计可在相同数据上进行比较。

敏感性分析能否告诉我该信任哪种设计?

不能。DoubleML包含Chernozhukov等人的遗漏变量偏差界限,它们说明隐藏混淆变量(水平或趋势)需要多强才能影响估计值,但无法判断是否存在此类变量。在场景c中,有偏的DiD估计值(稳健性值0.25)比有效的滞后结果回归(0.19)看起来更稳健。预趋势检验才是选择设计的关键依据。

滞后结果回归是否有预趋势检验?

标准方法是使用安慰剂检验(又称伪结果检验)(Imbens and Rubin 2015):在-5周历史数据上拟合模型,估计-4至-1周的"效应"(应为零)。与DiD检验方式相同,检验结果如下:

解读方式与DiD检验一致:-4至-1周保持平稳支持该设计。它成功检测到b中的混淆变量(重复实验中安慰剂估计值-0.80 vs 真实偏差-0.70)。但在c中检验结果出现弯曲,因为滞后结果回归正确识别了用户基于-3至-1周数据的参与行为,而截至-5周的模型无法观测到这些数据。因此无法在两种设计间做出选择。其适用范围更窄:当预趋势检验平稳时,可判断滞后结果回归是否与DiD一致。

使用截至-1周的完整历史数据无帮助。此时每期预处理周都会被构造性匹配,图表仅显示随时间变化的效应,但无法进行检验。

结论

两种设计使用了相同的估计量。正确选择取决于用户参与方式与假设的匹配程度。

  • 将估计量与设计分离。DML是估计方法。估计值是否因果有效取决于无混淆性或平行趋势假设是否成立。
  • 由预趋势检验决定。平稳:DiD。下降:滞后结果回归(DiD作为另一边界)。

模拟显示,每种设计在可预测的情况下都会失效,有偏设计仍能产生较紧的置信区间,且预趋势检查能识别出趋势下降。但它无法说明这些情况在实际产品中发生的频率。该模拟仅使用了一种数据生成过程(向参与度较低的用户倾斜的选择机制)、一个估计器库,以及一个非吸收性结果。在你自己的数据中,应首先分析用户如何选择加入,然后检查预趋势。

模拟器、估计器和诊断工具均包含在配套仓库中,附带一个可复现本文所有图表的笔记本。诊断工具需要一个带有你自定义列名的长面板数据,因此第5节中的检查可以直接在原始数据上运行。

参考文献

  • Angrist, J. 和 Pischke, J.-S. (2009). 《基本无害的计量经济学》,第5.4节。普林斯顿大学出版社。
  • Ashenfelter, O. (1978). 培训计划对收入的影响估计。《经济学与统计学评论》,60(1),47–57。
  • Chernozhukov, V. 等 (2018). 治疗和结构参数的双重/去偏机器学习。《计量经济学杂志》,21(1),C1–C68。
  • Chernozhukov, V. 等 (2022). 长话短说:因果机器学习中的遗漏变量偏差。NBER工作论文30302。
  • Daw, J. 和 Hatfield, L. (2018). 差异中差异分析中的匹配与回归到均值。《卫生服务研究》,53(6),4138–4156。
  • Ding, P. 和 Li, F. (2019). 差异中差异与滞后因变量调整之间的括号关系。《政治分析》,27(4),605–615。
  • Imbens, G. 和 Rubin, D. (2015). 统计、社会和生物医学科学中的因果推断,第"评估无混淆性"章。剑桥大学出版社。
  • Rambachan, A. 和 Roth, J. (2023). 平行趋势的更可信方法。《经济研究评论》,90(5),2555–2591。
  • Roth, J. (2022). 谨慎预检验:平行趋势检验后的事件研究估计。《美国经济评论:见解》,4(3),305–322。
  • Sant'Anna, P. 和 Zhao, J. (2020). 双重稳健的差异中差异估计量。《计量经济学杂志》,219(1),101–122。

全文使用模拟数据。本页所有图表和数字均由配套仓库中的 tools/article_data.py 生成,FAQ 中的稳健性值来自笔记本。

···

Ryan O'Sullivan 是一位首席数据科学家,拥有16年以上的因果推断和营销组合建模经验。在LinkedIn上关注他以了解更多关于营销测量的内容。

*所有图片均由作者使用 Claude 和 HTML 创建。