You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于复刻Bertrand et al.(2004)“忽略时间序列信息”部分的技术问询

理解Bertrand et al. (2004) 中渐进DID的残差分组步骤

我当年啃Bertrand这篇DID经典的时候也卡在过这个残差分组的部分!先帮你把逻辑拆解开,一步步来:

先回顾前置步骤

你已经理解的第一步:先对 Y_st 做回归:

Y_st = α_s + λ_t + X_stβ + ε_st

这里 α_s 是州固定效应,λ_t 是年份虚拟变量,X_st 是协变量,得到的残差 ε_st 已经剥离了不随时间变化的州特征、全国层面的时间趋势、以及协变量的影响,剩下的就是和政策冲击直接相关的“干净”波动了。

处理组残差分组的核心逻辑

接下来的残差分组,完全是为了落实文章里“忽略时间序列信息”的思路——本质是为了规避传统DID里的序列相关导致标准误低估的问题。具体步骤是:

  • 第一步:把样本明确分成处理组(实施了政策的州)和控制组(从未实施政策的州);
  • 第二步:只提取处理组的残差,然后按照每个处理州的政策实施时间,把残差拆成两组:
    • 第一组:政策实施前的残差——该州在政策生效年份之前所有年份的 ε_st;
    • 第二组:政策实施后的残差——该州在政策生效年份及之后所有年份的 ε_st;
  • 第三步:分别计算这两组残差的均值,两者的差值就是一个简化版的处理效应估计(相当于把处理组的“前平均”和“后平均”做对比)。

为什么要这么做?

Bertrand他们的核心担忧是:时间序列数据里的残差往往存在序列相关(比如一个州今年的经济波动和去年高度相关),传统DID的标准误没有考虑这一点,会导致显著性被高估。而通过把每个处理州的时间维度压缩成“前/后”两个点,相当于把长面板变成了一个“短面板”,自然就绕开了序列相关的问题。

举个直观的例子:假设处理组有3个州,A州2000年实施政策,B州2002年,C州2005年:

  • A州的前残差是1990-1999年的所有残差,后残差是2000-2010年的所有残差;
  • B州的前残差是1990-2001年的所有残差,后残差是2002-2010年的所有残差;
  • 把所有处理组的前残差合并成一个集合算均值,所有后残差合并成另一个集合算均值,两者的差就是这篇文章里提到的简化处理效应。

补充:和控制组的关联

后续你还会用到控制组的残差——同样把控制组的残差按对应处理组的政策时间逻辑拆分(或者简化为全样本的“虚拟前/后”分组),计算控制组的前/后均值差,最后用处理组的差减去控制组的差,得到最终的DID估计值。

内容的提问来源于stack exchange,提问作者user196456

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:22:44