causal_inference_tutorial

第八章:双重差分方法

双重差分(Difference-in-Differences, DiD)是因果推断中最重要和最广泛使用的准实验方法之一。当随机实验不可行,但我们能够观察到某个政策或干预在不同时间对不同群体的影响时,DiD提供了一个强大的因果识别策略。从政策评估到商业决策,从经济学研究到科技公司的产品迭代,DiD已成为实证分析的标准工具。本章将系统介绍DiD的核心思想、关键假设、现代发展以及实践应用中的注意事项。

8.1 DiD的基本原理

8.1.1 直觉理解

双重差分的核心思想是通过”差分两次”来消除混杂因素的影响。考虑一个简单场景:某城市在特定时间实施了新的交通政策,我们想评估这个政策对交通流量的因果效应。

时间轴:
    t=0 (政策前)     t=1 (政策后)
    
处理组(实施政策的城市):
    Y_treat,0  →    Y_treat,1
    
控制组(未实施政策的城市):  
    Y_control,0 →   Y_control,1

单纯比较处理组前后的变化 $(Y_{treat,1} - Y_{treat,0})$ 可能包含了时间趋势的影响。单纯比较处理组和控制组在政策后的差异 $(Y_{treat,1} - Y_{control,1})$ 可能反映了两组本身的差异。DiD通过计算”差分的差分”来识别因果效应:

\[\tau_{DiD} = (Y_{treat,1} - Y_{treat,0}) - (Y_{control,1} - Y_{control,0})\]

这个估计量的妙处在于:

8.1.2 2×2 DiD设计

最基本的DiD设计涉及两个时期和两个组。设定如下:

基本的DiD回归模型:

\[Y_{it} = \alpha + \beta \cdot \text{Treat}_i + \gamma \cdot \text{Post}_t + \tau \cdot D_{it} + \epsilon_{it}\]

其中:

8.1.3 识别假设

DiD的因果识别依赖于几个关键假设:

假设1:平行趋势(Parallel Trends) 在没有处理的情况下,处理组和控制组的结果变量将遵循平行的时间趋势:

\[E[Y_{i1}(0) - Y_{i0}(0)|G_i=1] = E[Y_{i1}(0) - Y_{i0}(0)|G_i=0]\]

这是DiD最核心的识别假设,我们将在下一节详细讨论。

假设2:无预期效应(No Anticipation) 处理组在处理实施前不应该对即将到来的处理做出反应。

假设3:稳定单元处理值假设(SUTVA) 一个单元的处理状态不影响其他单元的潜在结果。

假设4:共同支撑(Common Support) 处理组和控制组在协变量分布上有重叠。

8.1.4 处理效应的估计

在2×2设计中,平均处理效应(ATT)可以通过以下方式估计:

\[\hat{\tau}_{ATT} = \bar{Y}_{treat,post} - \bar{Y}_{treat,pre} - (\bar{Y}_{control,post} - \bar{Y}_{control,pre})\]

这个估计量的标准误可以通过聚类稳健标准误来计算,通常在组级别进行聚类。

8.2 平行趋势假设

8.2.1 假设的含义

平行趋势假设是DiD方法的灵魂。它要求在没有处理的反事实世界中,处理组和控制组的结果变量趋势应该是平行的。注意这并不要求两组的水平相同,只要求变化趋势相同。

理想的平行趋势:
    
Y │     ╱─────── 处理组(观测)
  │    ╱╱╱╱╱╱╱╱╱ 处理组(反事实)
  │   ╱ ↑
  │  ╱  │ 处理效应
  │ ╱   ↓
  │╱─────────── 控制组
  └──────────────
    t=0   t=1   时间

8.2.2 平行趋势的检验

虽然平行趋势假设本质上不可检验(因为涉及反事实),但我们可以通过以下方法增强其可信度:

1. 预处理期趋势检验

如果有多期预处理数据,可以检验处理组和控制组在处理前是否有平行趋势:

\[Y_{it} = \alpha_i + \sum_{k<0} \beta_k \cdot \mathbb{1}[t=k] \cdot \text{Treat}_i + \gamma_t + \epsilon_{it}\]

检验假设 $H_0: \beta_k = 0$ for all $k < 0$。

2. 安慰剂检验(Placebo Test)

在处理实际发生之前的时期进行”假”的DiD分析。如果发现显著效应,说明平行趋势假设可能不成立。

3. 图形检验

绘制处理组和控制组的时间趋势图是最直观的检验方法:

# 伪代码
plot(time, Y_treat, label="处理组")
plot(time, Y_control, label="控制组")
axvline(x=treatment_time, linestyle='--')

8.2.3 违反平行趋势时的后果

当平行趋势假设被违反时,DiD估计量将是有偏的:

\[\text{Bias} = E[\hat{\tau}_{DiD}] - \tau_{true} = E[Y_{1}^{treat}(0) - Y_{0}^{treat}(0)] - E[Y_{1}^{control}(0) - Y_{0}^{control}(0)]\]

这个偏差正是处理组和控制组在反事实趋势上的差异。

8.2.4 增强平行趋势假设的方法

1. 匹配或加权

通过倾向得分匹配或逆概率加权,使处理组和控制组在可观测特征上更加相似。

2. 合成控制方法

当控制组不满足平行趋势时,可以通过加权多个控制单元来构造一个”合成控制组”。

3. 包含协变量

在回归中加入时变协变量可以放松平行趋势假设:

\[Y_{it} = \alpha_i + \gamma_t + \tau D_{it} + X_{it}'\beta + \epsilon_{it}\]

8.3 事件研究设计

8.3.1 从静态到动态

传统的DiD估计一个平均处理效应,但在实践中,我们往往对处理效应的动态演变更感兴趣。事件研究(Event Study)设计将DiD扩展到多期,允许我们:

  1. 检验平行趋势假设(通过预处理期系数)
  2. 估计动态处理效应(处理效应如何随时间变化)
  3. 检测预期效应(处理宣布但未实施时的效应)

8.3.2 事件研究回归模型

设 $k$ 表示相对于处理时间的时期($k=0$ 为处理期),事件研究模型为:

\[Y_{it} = \alpha_i + \gamma_t + \sum_{k \neq -1} \beta_k \cdot \mathbb{1}[K_{it} = k] + \epsilon_{it}\]

其中:

8.3.3 事件研究图

事件研究最重要的输出是系数图(Event Study Plot):

处理效应
   │
0.3│                    ●───●───●
   │                   ╱
0.2│                  ●
   │                 ╱
0.1│                ╱
   │               ●
0.0│───●───●───●──┼─────────────
   │               │
-0.1│              │
   │              ↑
   └──────────────────────────────
   -4  -3  -2  -1  0   1   2   3
              处理时间(k)

理想的事件研究图应该显示:

8.3.4 动态效应的解释

事件研究揭示了几种重要的效应模式:

1. 即时且持续的效应 处理后立即出现效应并保持稳定,这是最理想的情况。

2. 渐进效应 效应随时间逐渐增强,可能反映了学习过程或网络效应。

3. 衰减效应 初期效应强,随后减弱,可能由于适应或新鲜感消退。

4. 预期效应 在处理前就出现效应,可能由于:

8.3.5 端点问题与解决方案

事件研究面临的一个技术问题是端点效应(Endpoint Restrictions)。当观察窗口有限时,不同单元在不同 $k$ 值上的观测数量不同。

解决方案:

  1. Binning:将远离处理时间的时期合并 \(\beta_{k^*} = \beta_k \text{ for } k \in [-L, U]\) \(\beta_{<-L} \text{ for all } k < -L\) \(\beta_{>U} \text{ for all } k > U\)

  2. 平衡面板:只使用所有单元都有观测的时期

  3. 加权调整:根据各时期的样本量进行加权

8.4 交错处理时间的处理

8.4.1 交错DiD的挑战

现实中,处理往往在不同时间影响不同单元(Staggered Adoption)。例如,不同城市在不同年份实施同一政策。这种交错处理带来了新的挑战。

传统的双向固定效应(TWFE)模型:

\[Y_{it} = \alpha_i + \gamma_t + \tau D_{it} + \epsilon_{it}\]

其中 $D_{it} = 1$ 如果单元 $i$ 在时期 $t$ 已接受处理。

8.4.2 TWFE的问题

Goodman-Bacon (2021) 分解表明,TWFE估计量是多个2×2 DiD的加权平均:

\[\hat{\tau}_{TWFE} = \sum_{(g,g')} w_{g,g'} \cdot \hat{\tau}_{g,g'}\]

问题在于:

  1. 负权重问题:某些比较可能获得负权重
  2. 禁用比较:已处理单元可能被用作其他单元的”控制组”
  3. 异质性偏误:当处理效应异质时,TWFE可能严重有偏

8.4.3 现代解决方案

1. Callaway-Sant’Anna (2021) 估计量

分别估计每个处理队列(cohort)的ATT: \(ATT(g,t) = E[Y_t - Y_{g-1} | G_g = 1] - E[Y_t - Y_{g-1} | C = 1]\)

然后聚合得到总体效应。

2. de Chaisemartin-D’Haultfœuille (2020)

只使用”干净”的比较(从未处理或尚未处理的单元作为控制组): \(\tau_t = \sum_i \frac{D_{it} - D_{i,t-1}}{N_t^{switch}} (Y_{it} - Y_{i,t-1}) - \sum_j \frac{1-D_{jt}}{N_t^{control}} (Y_{jt} - Y_{j,t-1})\)

3. Sun-Abraham (2021) 事件研究

交错处理下的事件研究需要考虑队列异质性: \(Y_{it} = \alpha_i + \gamma_t + \sum_g \sum_{k \neq -1} \beta_{g,k} \cdot \mathbb{1}[G_i = g, K_{it} = k] + \epsilon_{it}\)

8.4.4 选择合适的估计量

选择估计量时应考虑:

  1. 处理时间变异:处理时间越分散,TWFE问题越严重
  2. 效应异质性:异质性越大,需要更灵活的方法
  3. 样本量:新方法通常需要更大样本量
  4. 解释需求:是否需要队列特定的效应

8.5 行业案例:美团外卖配送费调整的影响评估

8.5.1 业务背景

2023年初,美团外卖面临配送成本上升的压力,决定在部分城市试点调整配送费定价策略。管理层需要评估:

  1. 配送费调整对订单量的影响
  2. 对不同类型商家的异质性影响
  3. 用户行为的动态调整过程

由于不能进行大规模随机实验(会影响用户体验和商家关系),团队决定采用渐进式推广策略,这为使用DiD方法创造了条件。

8.5.2 实验设计

处理组:15个二线城市,2023年3月1日起实施新配送费策略 控制组:20个特征相似的二线城市,维持原配送费策略 观察期:2023年1月-6月(处理前2个月,处理后4个月) 结果变量

8.5.3 识别策略验证

1. 平行趋势检验

团队首先检查了2022年全年的历史数据:

日均订单量(对数)
12.5│                    
    │      处理组 ●─●─●─●
12.0│           ╱
    │      ●─●─●
11.5│     ╱     控制组 ○─○─○─○
    │ ●─●─○─○─○
11.0│ ╱
    └────────────────────────
    1月 2月 3月 4月 5月 6月
         ↑
      政策实施

通过事件研究发现,政策实施前两组趋势基本平行,支持识别假设。

8.5.4 主要发现

基础DiD估计

\[\ln(订单量_{it}) = \alpha_i + \gamma_t + \tau \cdot D_{it} + \epsilon_{it}\]

估计结果:$\hat{\tau} = -0.082$ (SE = 0.021),即配送费调整导致订单量下降约7.9%。

动态效应分析

通过事件研究,团队发现了有趣的动态模式:

这种模式反映了用户的适应过程和价格敏感性的时间变化。

8.5.5 异质性分析

团队进一步探索了不同维度的异质性:

1. 商家类型异质性

2. 时段异质性

3. 用户群体异质性

8.5.6 稳健性检验

1. 安慰剂检验 将政策时间假设提前到2022年3月,未发现显著效应。

2. 排除其他政策干扰 控制了同期的营销活动、竞争对手动作等因素。

3. 合成控制方法验证 使用合成控制方法构建更优的控制组,结果基本一致。

8.5.7 业务洞察与决策

基于DiD分析结果,美团外卖制定了差异化策略:

  1. 分层定价:对价格敏感度不同的用户群体实施差异化配送费
  2. 动态调整:高峰期维持较高配送费,非高峰期适当降低
  3. 商家补贴:对受影响较大的小型商家提供过渡期补贴
  4. 渐进推广:将全国推广计划调整为分批次渐进实施

这个案例展示了DiD方法如何帮助企业在无法进行随机实验的情况下,严格评估政策效果并指导业务决策。

本章小结

双重差分方法是因果推断工具箱中的核心工具,特别适用于政策评估和准实验设计。本章的关键要点:

核心概念

  1. DiD基本思想:通过两次差分消除混杂——第一次消除组间固定差异,第二次消除共同时间趋势
  2. 识别公式:$\tau_{DiD} = (Y_{treat,post} - Y_{treat,pre}) - (Y_{control,post} - Y_{control,pre})$
  3. 回归框架:$Y_{it} = \alpha_i + \gamma_t + \tau D_{it} + \epsilon_{it}$

关键假设

  1. 平行趋势假设:最核心的识别假设,要求反事实趋势平行
  2. 无预期效应:处理前不应有预期反应
  3. SUTVA:无溢出效应
  4. 共同支撑:组间特征有重叠

方法扩展

  1. 事件研究:将静态DiD扩展为动态分析,可检验平行趋势并估计动态效应
  2. 交错DiD:处理现实中的交错处理时间,需要注意TWFE的潜在偏误
  3. 现代方法:Callaway-Sant’Anna、de Chaisemartin-D’Haultfœuille、Sun-Abraham等新方法解决TWFE问题

实践要点

  1. 平行趋势检验:使用预处理期数据、安慰剂检验、图形分析
  2. 稳健性检查:多种方法交叉验证结果
  3. 异质性分析:探索不同维度的处理效应差异
  4. 动态效应:关注效应的时间演变模式

应用场景

练习题

基础题

练习8.1 考虑一个2×2 DiD设置,给定以下数据:

计算DiD估计量并解释其含义。

Hint: 使用基本的DiD公式,注意区分时间趋势和处理效应。

答案 DiD估计量 = (120-100) - (85-80) = 20 - 5 = 15 解释: - 处理组变化了20个单位 - 控制组变化了5个单位(代表时间趋势) - 扣除时间趋势后,处理的因果效应为15个单位 - 这意味着处理使结果变量增加了15个单位

练习8.2 某研究使用DiD评估培训项目对员工生产力的影响。研究者发现处理组在培训前三个月的生产力增长速度明显快于控制组。这对DiD分析有什么影响?应该如何处理?

Hint: 思考平行趋势假设的含义和违反的后果。

答案 影响: 1. 违反了平行趋势假设,这是DiD的核心识别假设 2. DiD估计量将是有偏的,可能高估处理效应 3. 处理组本身的上升趋势会被错误地归因于培训效果 处理方法: 1. 考虑使用更长的预处理期数据,检查趋势差异是否持续存在 2. 在模型中加入组别特定的时间趋势:$Y_{it} = \alpha_i + \gamma_t + \delta \cdot t \cdot \text{Treat}_i + \tau D_{it} + \epsilon_{it}$ 3. 使用匹配或加权方法构建更相似的控制组 4. 考虑其他识别策略,如合成控制方法 5. 至少应该在结果中明确说明这一局限性

练习8.3 在事件研究设计中,为什么通常选择处理前一期($k=-1$)作为基准期而不是其他时期?

Hint: 考虑解释的便利性和识别的清晰性。

答案 选择$k=-1$作为基准期的原因: 1. **解释直观**:所有系数都相对于处理前最后一期,便于解释处理效应的即时变化 2. **检验预期效应**:如果存在预期效应,最可能在$k=-1$期出现,以此为基准更容易发现 3. **平行趋势检验**:其他预处理期系数应接近0,便于视觉检验平行趋势 4. **避免共线性**:必须省略一个时期避免完全共线性,$k=-1$是自然选择 5. **连续性**:在$k=-1$和$k=0$之间的跳跃直接反映了处理的即时效应 注意:也可以选择其他基准期(如最早的预处理期),但解释会相应改变。

挑战题

练习8.4 某科技公司在2023年1月对部分产品线实施了新的定价策略,另一些产品线在2023年4月实施,还有一些始终未实施。现在是2023年12月,你需要评估定价策略的效果。请设计一个完整的DiD分析方案,包括: (a) 如何定义处理组和控制组? (b) 使用什么估计方法? (c) 需要进行哪些稳健性检验?

Hint: 这是一个交错处理的情况,需要考虑现代DiD方法。

答案 (a) 处理组和控制组定义: - 早期处理组(Early):1月实施的产品线 - 晚期处理组(Late):4月实施的产品线 - 纯控制组(Never):始终未实施的产品线 (b) 估计方法: 1. **避免简单TWFE**:由于存在交错处理和潜在的异质性效应,不应使用简单的双向固定效应 2. **推荐方法**: - Callaway-Sant'Anna (2021):分队列估计再聚合 - Sun-Abraham (2021):交错处理的事件研究 - de Chaisemartin-D'Haultfœuille (2020):只用干净比较 3. **具体步骤**: - 首先估计队列-时期特定的ATT - 检查各队列的效应异质性 - 通过适当加权得到总体效应 - 绘制动态效应图 (c) 稳健性检验: 1. **平行趋势检验**: - 比较早期组和纯控制组在1月前的趋势 - 比较晚期组和纯控制组在4月前的趋势 - 比较早期组和晚期组在1月前的趋势 2. **安慰剂检验**: - 使用2022年的数据,假设同样时间实施 - 随机分配处理状态,看是否得到显著结果 3. **排除其他因素**: - 控制季节性因素 - 控制产品特定的需求冲击 - 检查是否有其他同期政策 4. **异质性分析**: - 按产品类别分组 - 按市场规模分组 - 检查处理强度的影响 5. **敏感性分析**: - 改变样本期长度 - 排除异常值 - 使用不同的结果变量定义

练习8.5 你在分析某个DiD模型时发现了以下模式:处理效应在最初几个月为正且显著,但随后逐渐减小,在第6个月后变为负值。请提供至少三种可能的解释,并说明如何区分这些解释。

Hint: 考虑真实效应变化、数据问题、模型设定等多个角度。

答案 可能的解释: 1. **真实的动态效应** - 短期刺激效应(如促销的新鲜感) - 长期负面效应(如质量下降、竞争对手反应) - 检验方法:分析业务逻辑,收集定性证据 2. **样本磨损(Attrition)** - 表现好的单元退出样本 - 处理组和控制组的磨损率不同 - 检验方法:分析样本构成变化,进行磨损分析 3. **违反SUTVA(溢出效应)** - 处理组的正效应逐渐溢出到控制组 - 控制组采取了类似策略 - 检验方法:检查控制组的行为变化,空间/网络分析 4. **季节性或周期性因素** - 处理时间恰好与季节性高峰重合 - 未充分控制的周期性因素 - 检验方法:加入季节固定效应,使用更长历史数据 5. **模型设定错误** - 遗漏了重要的时变协变量 - 函数形式设定错误 - 检验方法:加入更多控制变量,尝试非线性模型 区分策略: 1. 绘制原始数据趋势图,观察模式 2. 分子样本分析(如分产品、分地区) 3. 收集额外的定性信息 4. 进行机制分析,理解效应传导路径 5. 使用不同的计量方法交叉验证

练习8.6 一个研究者想评估某个环保政策对企业排放的影响。政策规定:2022年起,年收入超过1亿的企业必须采用新的排放标准。研究者计划使用年收入9000万-9900万的企业作为控制组,年收入1亿-1.1亿的企业作为处理组。请评价这个研究设计并提出改进建议。

Hint: 思考这种设计可能面临的多重威胁。

答案 设计问题: 1. **内生性分组**: - 企业可能操纵收入避免超过门槛 - 收入本身可能与排放相关 2. **可比性问题**: - 收入不同的企业在规模、技术、管理等方面可能系统性不同 - 违反平行趋势假设的风险高 3. **溢出效应**: - 接近门槛的企业可能提前准备 - 供应链影响 4. **样本选择**: - 范围太窄可能样本量不足 - 代表性有限 改进建议: 1. **使用RDD而非DiD**: - 这更像是断点回归设计 - 在门槛附近使用RDD更合适 2. **如果坚持使用DiD**: - 扩大样本范围(如8000万-1.2亿) - 使用倾向得分匹配确保可比性 - 收集多期历史数据验证平行趋势 3. **检查操纵**: - 绘制收入分布图,检查门槛处是否有断层 - 分析收入在门槛附近的企业特征 4. **多重稳健性检验**: - 改变带宽 - 排除门槛附近企业 - 使用其他门槛作为安慰剂检验 5. **机制分析**: - 区分真实减排和数据操纵 - 分析成本和技术采用 6. **考虑动态效应**: - 企业可能需要时间适应 - 使用事件研究方法

常见陷阱与错误

1. 平行趋势假设的误解

陷阱:认为处理组和控制组的水平必须相似 正确理解:只需要趋势平行,水平可以不同。DiD正是通过差分来消除水平差异。

陷阱:仅通过图形判断平行趋势 正确做法:结合统计检验、多期预处理数据、安慰剂检验等多种方法。

2. 标准误计算错误

陷阱:使用普通标准误 问题:忽略了组内相关性,导致标准误被低估,假阳性率增加。 正确做法:使用聚类稳健标准误,通常在处理单元级别聚类。如果组数较少(<30),考虑使用wild bootstrap。

3. 处理时间定义不当

陷阱:将政策宣布时间作为处理时间 问题:可能存在预期效应,导致估计偏误。 正确做法

4. 忽视交错处理的问题

陷阱:对交错处理直接使用TWFE 问题:可能产生负权重,已处理单元被当作控制组。 正确做法:使用现代DiD方法(CS、dCDH、SA等)或至少进行Bacon分解诊断。

5. 样本选择偏误

陷阱:根据结果变量选择样本 例子:只保留”始终存活”的企业,但处理可能影响企业存活。 正确做法

6. 过度解释短期效应

陷阱:只关注即时效应,忽略动态变化 问题:许多政策效应需要时间显现或可能衰减。 正确做法

7. 忽略溢出效应

陷阱:假设处理只影响处理组 问题:违反SUTVA,导致效应估计偏误。 例子:一个地区的政策可能影响邻近地区。 正确做法

8. 机械使用显著性

陷阱:只关注统计显著性,忽略经济显著性 正确做法

9. 数据操纵和P-hacking

陷阱:尝试多种设定直到获得期望结果 正确做法

10. 忽略数据质量

陷阱:不检查数据质量直接分析 问题:测量误差、缺失值、异常值都可能影响结果。 正确做法

最佳实践检查清单

研究设计阶段

识别假设验证

模型估计

稳健性检验

结果解释

报告规范

高级考虑


记住:DiD是一个强大但需要谨慎使用的工具。严格的假设检验、多重稳健性检查和透明的报告是确保研究质量的关键。当假设可能不满足时,诚实地报告并考虑替代方法。