正在加载中...

展开本页目录
算法教程DID-双重差分

DID-双重差分

No.041 · 在线教程

双重差分(Difference-in-Differences, DID)用于评估“处理组”在政策/事件前后相对“对照组”的净效应。其核心思想是:通过两次差分消除时间趋势与组间固定差异,从而估计政策效应。

DID-双重差分(Difference-in-Differences)

1. 方法概述

双重差分(Difference-in-Differences, DID)用于评估“处理组”在政策/事件前后相对“对照组”的净效应。其核心思想是:通过两次差分消除时间趋势与组间固定差异,从而估计政策效应。

设共有 \(n\) 个样本、\(d\) 个特征,数据集表示为

$$ \mathcal{D}=\{(x_i,y_i)\}_{i=1}^{n},\quad x_i\in\mathbb{R}^d \tag{1} $$

其中 \(y_i\) 为结果变量(因变量),\(x_i\) 包含处理组指示、时间指示与控制变量等。

2. 符号与变量

符号 含义
\(y_i\) 第 \(i\) 个样本的结果变量
\(D_i\) 处理组指示(处理=1,对照=0)
\(Post_i\) 政策/时间指示(后期=1,前期=0)
\(D_i\times Post_i\) DID 交互项
\(X_i\) 控制变量向量
\(\beta_3\) DID 效应(核心估计量)
\(\varepsilon_i\) 误差项

本系统支持:

  • 处理组取值/对照组取值(当处理组列不是 0/1 时,用于映射为 \(D\));
  • Post 生成方式:列为 0/1、阈值(>=)、或按值匹配;
  • 标准误类型:常规/稳健(HC1)/聚类/ HAC(Newey-West)。

3. DID 均值法(四格均值)

设四类均值为:

  • \(\overline{y}_{1,1}=E[y|D=1,Post=1]\)(处理组、后期)
  • \(\overline{y}_{1,0}=E[y|D=1,Post=0]\)(处理组、前期)
  • \(\overline{y}_{0,1}=E[y|D=0,Post=1]\)(对照组、后期)
  • \(\overline{y}_{0,0}=E[y|D=0,Post=0]\)(对照组、前期)

DID 效应为

$$ \widehat{\text{DID}}=(\overline{y}_{1,1}-\overline{y}_{1,0})-(\overline{y}_{0,1}-\overline{y}_{0,0}) \tag{2} $$

系统会输出四格均值表与 DID 汇总结果,并绘制“四格均值柱状图”。

4. DID 回归法(含控制变量)

基准回归模型为

$$ y_i=\beta_0+\beta_1 D_i+\beta_2 Post_i+\beta_3(D_i\times Post_i)+\gamma^\top X_i+\varepsilon_i \tag{3} $$

其中 \(\beta_3\) 即 DID 效应。系统输出系数、标准误、t 值、p 值与置信区间。

4.1 处理组/对照组映射

当处理组列不是 0/1 时,可指定“处理组取值” \(v_T\) 与“对照组取值” \(v_C\),构造指示变量:

$$ D_i=\mathbb{I}(\text{treat}_i=v_T)\quad (\text{若同时指定 } v_C,\ \text{仅保留 } \{v_T,v_C\}) \tag{4} $$

4.2 Post 生成方式

  • 列为 0/1 指示:若列已为 0/1,则直接作为 \(Post_i\)。
  • 阈值方式(数值或日期):

$$ Post_i=\mathbb{I}(time_i\ge \tau) \tag{5} $$

  • 按值匹配

$$ Post_i=\mathbb{I}(time_i=\tau) \tag{6} $$

5. 标准误与显著性(系统支持)

系统提供以下标准误类型:

  • 常规:基于经典 OLS 假设。
  • 稳健(HC1):对异方差稳健。
  • 聚类(Cluster):按指定聚类列进行聚类稳健标准误。
  • HAC(Newey-West):适用于序列相关与异方差。

显著性与置信区间基于显著性水平 \(\alpha\) 计算。

6. 平行趋势与诊断图

DID 的关键假设是“平行趋势”。系统提供:

  • 处理组 vs 对照组趋势图(政策前后)
  • 残差诊断:残差直方图、Q-Q 图、ACF 自相关图

用于辅助检验趋势一致性与残差结构。

7. 输出结果与图表说明

系统结果目录包含:

  • Excel:模型摘要、回归系数、DID 均值、DID 汇总、拟合与残差、处理后数据、原始数据、参数设置、图表清单;
  • 图表文件:趋势图、DID 四格均值柱状图、系数置信区间、残差诊断等。

图表路径会列在 Excel 的“图表清单”中,便于直接插入论文。

8. 与代码实现的对应关系

本算法在程序中由 具体的算法2/DID-双重差分/core/calculator.py 实现。程序会显式构造 _treat_post 与交互项 _did,并将 DID 均值法与回归法的关键结果同时落入 xlsx,因此论文撰写时应直接对应这些真实输出。

8.1 程序实际导出的工作表

  • 模型摘要:核心统计量与 DID 效应;
  • 回归系数:系数、标准误、t 值、p 值、区间与显著性;
  • DID均值:四格均值;
  • DID汇总:DID 效应及相关汇总;
  • 拟合与残差:拟合值与残差;
  • 处理后数据原始数据:数据明细;
  • 参数设置:模型与标准误配置;
  • 图表清单:图表路径索引。

8.2 程序实际生成的图表

  • 处理组与对照组趋势图;
  • DID 四格均值柱状图;
  • 系数与置信区间图;
  • 残差直方图、Q-Q 图、ACF 图。

8.3 程序实现中应写明的点

  • 程序支持常规、稳健、聚类和 HAC 标准误;
  • 若处理组列不是 0/1,会先按用户给定取值映射为处理/对照;
  • DID 回归系数表中的交互项就是核心效应,不应与四格均值差重复解释;
  • 图表清单中的路径均可直接用于论文插图定位。

9. 论文写作模板

方法描述模板:

本研究采用双重差分(DID)方法评估政策冲击的净效应。设 \(D_i\) 表示处理组指示变量,\(Post_i\) 表示政策实施后的时间指示变量,回归模型设定为式(3)。其中 \(\beta_3\) 为核心 DID 效应估计量,反映处理组在政策前后相对对照组的变化差异。为控制潜在混杂因素,模型加入控制变量 \(X_i\),并对标准误进行稳健/聚类/HAC 处理以提高推断可靠性。

结果描述模板:

结果表明,DID 系数 \(\beta_3\) 为 \(\hat{\beta}_3\),在 \(\alpha=0.05\) 显著性水平下显著(p 值为 \(p\))。处理组在政策实施后相对对照组呈现显著上升(或下降),表明政策对结果变量具有显著影响。

10. UI 参数一一对应表(与界面一致)

UI 参数 符号/变量 作用 取值/说明
模型 DID 固定为 DID 模型 仅“DID-双重差分”
因变量(y) \(y_i\) 被解释变量/结果变量 需为数值列
处理组列(D) \(D_i\) 处理组指示列 0/1 或分类标签
处理组取值 \(v_T\) 将处理组标签映射为 1 当处理组列非 0/1 时必填
对照组取值 \(v_C\) 将对照组标签映射为 0 可选;填写后仅保留两类样本
时间列(Post/Time) \(time_i\) 政策/时间指示列 可为 0/1、数值或日期
Post 生成方式 \(Post_i\) 生成规则 生成政策期指示 0/1 指示 / 阈值(>=) / 按值匹配
阈值/取值 \(\tau\) Post 阈值或匹配值 例如 2020-01-01 或 3
控制变量(X) \(X_i\) 控制混杂因素 多选,需为数值型
包含截距项 \(\beta_0\) 是否包含常数项 一般建议保留
alpha \(\alpha\) 显著性水平 常用 0.05 或 0.01
标准误类型 SE 设定 推断稳健性 常规 / 稳健(HC1) / 聚类 / HAC
聚类列 Cluster 聚类稳健标准误 仅在“聚类”时必选
HAC 滞后阶 Lags Newey-West 滞后 仅在“HAC”时启用
输出设置 output_file 结果保存路径 默认 results/ 时间戳目录

提示:当处理组列不是 0/1 时,必须填写“处理组取值”;若填写“对照组取值”,系统仅保留两类样本,避免混入其它类别。

11. 英文模板段落与图表题注(可选)

英文方法段:

We employ the Difference-in-Differences (DID) approach to identify the causal effect of the policy. Let \(D_i\) indicate the treated group and \(Post_i\) indicate the post-policy period. The baseline specification follows Equation (3), and the coefficient on the interaction term \(D_i\times Post_i\) captures the DID effect. Control variables \(X_i\) are included, and standard errors are computed using robust/cluster/HAC options as appropriate.

英文结果段:

The estimated DID coefficient \(\hat{\beta}_3\) is statistically significant at the \(\alpha=0.05\) level, suggesting a meaningful policy impact on the outcome variable. The direction and magnitude of \(\hat{\beta}_3\) imply that the treated group experienced a relative increase (or decrease) after the policy implementation.

英文图题模板:

  • Figure 1. Average trends of treated and control groups before and after the policy (parallel trends check).
  • Figure 2. Four-cell means and DID contrasts for treated/control and pre/post periods.
  • Figure 3. Coefficients with 95% confidence intervals (DID regression).
  • Figure 4. Residual diagnostics (histogram / Q–Q plot / ACF).

12. 示例表格与图表题注模板

表 1:DID 回归结果(示例)

变量 系数 标准误 t 值 p 值 95%CI 显著性
\(D\)
\(Post\)
\(D\times Post\)
控制变量

图 1:处理组与对照组的趋势图

图 1 展示了处理组与对照组在政策实施前后的平均趋势变化,用于检验平行趋势假设。

图 2:DID 四格均值柱状图

图 2 展示四类均值 \((D=1/0, Post=1/0)\) 的对比,直观体现双重差分效应。

13. UI 参数示例填写截图说明(可用于论文或附录)

说明:以下为“截图应包含的字段与示例填写”,便于用户按界面逐项复现。若需插入论文,请截取“参数设置”区域并标注序号(①②③…),在正文中对应说明。

截图应包含的字段与示例填写(建议顺序)
① 因变量(y):y
② 处理组列(D):treat
③ 处理组取值:1(若处理组列非 0/1,必填)
④ 对照组取值:0(建议填写以仅保留两类样本)
⑤ 时间列(Post/Time):posttime
⑥ Post 生成方式:列为0/1指示(若为阈值/匹配,请在⑦填写)
⑦ 阈值/取值:2020-01-013(仅阈值/匹配时填写)
⑧ 控制变量(X):选择 year, x1, x2, region, firm_size, industry, gdp
⑨ 包含截距项:勾选
⑩ 标准误类型:稳健(HC1) / 聚类(Cluster) / HAC
⑪ 聚类列(若选择聚类):region
⑫ HAC 滞后阶(若选择 HAC):1
⑬ alpha:0.05
⑭ 输出设置:默认(results/时间戳目录)或自定义路径

截图标注示例说明(可写入正文/附录):
“图 A1 展示了 DID 模型参数设置界面。处理组列为 treat,处理组取值与对照组取值分别设置为 1 和 0;时间列为 post,Post 生成方式为 0/1 指示;控制变量选择 year、x1、x2、region、firm_size、industry、gdp;标准误类型采用稳健(HC1),显著性水平 α=0.05。”

14. 注意事项

  • DID 的识别依赖“平行趋势”假设,建议在政策前期进行趋势检验;
  • 若处理组列非 0/1,必须指定“处理组取值”,建议同时指定对照组取值;
  • 若存在时间相关或组内相关性,建议采用 HAC 或聚类稳健标准误;
  • 结果解释应结合具体政策背景,避免仅凭系数符号做结论。

15. 单篇终审补充

15.1 图题与表题对齐建议

  • 本文档应优先对应真实算法目录 具体的算法2/DID-双重差分
  • 代表性结果表建议绑定 具体的算法2/DID-双重差分/results/DID-双重差分分析结果_20260329_165248/DID-双重差分分析结果_20260329_165248.xlsx
  • 表题应直接对应该 xlsx 的真实工作表:模型摘要回归系数DID均值DID汇总拟合与残差处理后数据原始数据参数设置图表清单
  • 图题应优先绑定 results 根目录中与同轮结果最接近的一组实体图:trend_20260329_165320.pngdid_bar_20260329_165320.pngcoef_ci_20260329_165320.pngresid_hist_20260329_165320.pngresid_qq_20260329_165320.pngresid_acf_20260329_165320.png

15.2 终审说明

  • DID 当前存在“结果总表在时间戳子目录、复现脚本与部分图文件在 results 根目录”的历史导出结构,不是所有产物都收拢在单一子目录中。
  • 复现脚本可对应 repro_did_template_20260329_165321.py,其 SRC_FILE 实际写为 did_window1_input.csv,属于“脚本同目录 CSV 快照复现”口径。
  • 因此论文附录若写复现说明,应如实写成“结果表来自时间戳结果目录,复现脚本和同批图像位于 results 根目录,并读取同目录下的 did_window1_input.csv”,不要硬写成统一的 repro_inputs 结构。

15.3 全量强化补充

  • 当前需要修正旧文一处图证口径:主结果目录本身已经包含完整图像,不必优先绑定 results 根目录那组 165320 图片。当前首层主结果目录是 具体的算法2/DID-双重差分/results/DID-双重差分分析结果_20260329_165248
  • 当前首层主工作簿为 具体的算法2/DID-双重差分/results/DID-双重差分分析结果_20260329_165248/DID-双重差分分析结果_20260329_165248.xlsx,实际工作表为 模型摘要回归系数DID均值DID汇总拟合与残差处理后数据原始数据参数设置图表清单
  • 当前首层主目录中已经存在同时间戳图证:trend_20260329_165248.pngdid_bar_20260329_165248.pngcoef_ci_20260329_165248.pngresid_hist_20260329_165248.pngresid_qq_20260329_165248.pngresid_acf_20260329_165248.png。因此正文若只谈主实验,应优先使用 165248 子目录中的这组图,而不是根目录平铺的 165320 组。
  • 当前 results 根目录下仍保留一组后续图和脚本,包括 trend_20260329_165320.pngdid_bar_20260329_165320.pngcoef_ci_20260329_165320.pngresid_hist_20260329_165320.pngresid_qq_20260329_165320.pngresid_acf_20260329_165320.pngrepro_did_template_20260329_165321.pydid_window1_input.csv。这说明 DID 当前真实结构是“首层结果子目录 + results 根目录平铺复现脚本与后续一组图”的混合模式。
  • 当前 repro 脚本 具体的算法2/DID-双重差分/results/repro_did_template_20260329_165321.py 的真实输入口径是 SRC_FILE = 'did_window1_input.csv',即“脚本同目录 CSV 快照复现”。因此这篇文档应明确区分:主工作簿和 165248 子目录图是主结果证据;根目录平铺脚本与 did_window1_input.csv 是复现证据。

16. 软件实现核查补充(2026-07)

  • 当前实现的主结果目录应写作 具体的算法2/DID-双重差分/results/DID-双重差分分析结果_20260329_165248,正文优先使用 165248 子目录内的 trend_20260329_165248.pngdid_bar_20260329_165248.pngcoef_ci_20260329_165248.pngresid_hist_20260329_165248.pngresid_qq_20260329_165248.pngresid_acf_20260329_165248.png
  • results 根目录平铺的 165320 图组和 repro_did_template_20260329_165321.py + did_window1_input.csv 仅作复现补充,不要写成主结果。
  • 文档解释应围绕 模型摘要回归系数DID均值DID汇总拟合与残差图表清单 展开,把平行趋势、处理效应和残差诊断落回实际导出表中。
  • 如果后续要给用户复现实验,应明确写成“主表在时间戳子目录,复现脚本在 results 根目录”。