用途:引导完成完整的双重差分(DID)分析,从设计检查、平行趋势假设验证,到模型设定、交错处理设计与事件研究回归,适用于政策评估与自然实验场景。
核心逻辑:比较处理组处理前后变化与控制组同期变化之差。DID估计量 = (处理组后−处理组前) − (控制组后−控制组前)。关键假设为平行趋势:若无处理,处理组结果应与控制组平行演变。
工作流:1) 设计检查,确认处理/控制分配与时间;2) 用处理前事件研究回归检验平行趋势;3) 建立2×2 DID或双向固定效应(TWFE)基准回归;4) 若采用时间不一致,使用稳健估计量;5) 稳健性检验:安慰剂处理、替代控制组、Callaway-Sant'Anna等。
基础2×2模型:Y_it = β₀ + β₁·Treat_i + β₂·Post_t + β₃·(Treat_i × Post_t) + ε_it,β₃即DID估计(ATT)。
主要能力:提供Python、R、Stata代码模板。Python用statsmodels做2×2(smf.ols('y ~ treat + post + treat_post', data=df).fit(cov_type='HC3')),或用linearmodels.PanelOLS做实体与时间双固定效应并按实体聚类。R用plm做双向固定效应,配合lmtest与sandwich聚类标准误。Stata用xtreg或reghdfe:xtset entity_id year; xtreg y treat_post i.year, fe cluster(entity_id);或reghdfe y treat_post, absorb(entity_id year) cluster(entity_id)。
事件研究:以相对时间虚拟变量替换单一treat_post,检验处理前系数是否约为0并联合F检验;R可用fixest的feols与iplot,Stata用reghdfe配合coefplot。
交错DID:当单位处理时间不同,标准TWFE可能有偏,应采用Callaway-Sant'Anna或Sun-Abraham估计量。R中用did包的att_gt与aggte(simple/dynamic),fixest的sunab;Stata用csdid与csdid_plot。
报告规范:必须给出事件研究图,说明平行趋势假设及证据,报告DID系数与实体层面聚类标准误,讨论预期效应、Ashenfelter下降、溢出等潜在违背;交错设计需说明为何使用CS或SA估计量。
常见陷阱:交错处理且异质效应下使用TWFE会有偏;聚类层级应与处理变动层级一致,如处理发生在州层面则按州聚类;未拒绝预趋势不等于平行趋势成立,可用Roth(2022)功效分析;忽略预期效应会导致处理前系数非零;不展示事件研究图。
相关技能:合成控制(处理单位少时)、RDD(阈值分配时)、ml-causal(异质效应)。命令/diagnose、/robustness、/method可分别用于诊断、稳健性与方法学写作。更多内容见references/did-reference.md。资料未提供收费、平台与具体使用限制等信息。