核心疑问可以拆解成两个关键结论,先直接明确答案:
- 只吸收时间固定效应、没吸收城市/个体固定效应,且回归中只有 post×treat 和 post 的设定,严格来说不是合格的双重差分(DID)模型;
- 这个设定的结果可能有参考价值,但不能按照DID的框架写进论文,大概率会被审稿人质疑核心识别策略不成立。
一、为什么这个设定不满足DID的核心要求?双重差分的本质是“双重差分估计处理效应”,其识别依赖四个核心维度的比较:
- 处理组×政策后
- 处理组×政策前
- 对照组×政策后
- 对照组×政策前
而实现这一比较的前提是,回归模型中须包含三个核心项 + 固定效应组合:
- treat:区分处理组和对照组(核心分组变量)
- post:区分政策实施前后(核心时间变量)
- post×treat:DID的核心估计量,即政策的平均处理效应(ATT)
- 个体/城市固定效应 + 时间固定效应:控制不随时间变化的个体异质性、不随个体变化的时间冲击
你当前的问题出在两点:
- 缺少个体/城市固定效应:这会导致模型无法控制处理组和对照组之间先天的、不随时间变化的差异(如城市资源禀赋、个体特征差异)。如果处理组和对照组本身就存在系统性差异, post×treat 系数会混杂这些差异,无法准确反映政策效应。
- 虽然没被omit,但仅靠时间固定效应不足以支撑DID的平行趋势假设:平行趋势是DID的灵魂假设,而个体/城市固定效应是检验和满足这一假设的关键——它能剥离掉组间的固定差异,让我们只关注组内的时间变化趋势是否平行。
二、“只控制post×treat和post”的结果是什么?这个设定本质上是“交互项回归”,而非DID。系数解读是:
- post 的系数:对照组在政策前后的平均变化
- post×treat 的系数:处理组相对对照组的额外变化
但问题在于,这个“额外变化”没有排除个体/城市固定差异的干扰,可能是政策效应,也可能是处理组本身就有的趋势差异。因此,这个结果可以作为探索性分析,但不能称是DID的因果识别结果。
三、关于“要不要重写”的现实建议选择:补加个体/城市固定效应,重新跑DID
- 这是规范的做法,也是审稿人能接受的唯一路径。
- 操作上其实不复杂:在 reghdfe 命令中加入 absorb(个体/城市id 时间id),然后回归式中加入 treat 变量(此时 treat 不会被omit,因为个体固定效应控制的是个体层面的固定差异,treat 是分组变量,若同一城市/个体的 treat 取值固定,treat 会被个体固定效应吸收——这时候才是正常的!)
- 补充:如果 treat 是个体层面的固定分组(比如某类企业永远是处理组),那么 treat 会被个体固定效应吸收,此时回归式中只需要 post 和 post×treat 即可,这是合格的DID设定(你之前的问题是没加个体固定效应,而非没加 treat 变量)。
退而求其次:如果实在不想重写大量内容
- 不能提DID,把模型定义为“分组双重差分的探索性分析”,并明确说明模型的局限性(未控制个体固定效应,结果仅供参考)。
- 补充稳健性检验:如倾向得分匹配(PSM)+ 交互项回归,或者加入更多的控制变量来尽可能捕捉个体/城市差异。
- 但这种做法风险很高,大概率会被审稿人要求补做标准DID。
总结- 没加个体/城市固定效应 = 不是合格DID = 不能按DID写论文
- 补加固定效应是唯一的规范路径,虽然要重跑结果,但能让论文核心识别策略站得住脚。
可以把当前的回归命令和变量定义(比如treat是城市层面还是企业层面、是否随时间变化),判断加入固定效应后treat是否会被吸收,以及如何调整命令最省事。