DID 回归入门:平行趋势与事件时间图

DID 回归入门:平行趋势与事件时间图

difference-in-differences-guide.jpg


一、DID 回归的核心思想

DID(Difference-in-Differences)通过比较“受政策影响组(Treatment)与未受影响组(Control)”在政策前后的变化差异,识别政策冲击的因果效应。

逻辑公式:
DID=(YT,postYT,pre)(YC,postYC,pre)

即 “处理组的变化 - 对照组的变化”。

识别假设:
政策发生前,处理组与对照组应具有平行趋势(Parallel Trend),即在无政策情况下两组趋势应相同。


二、基本模型设定

2.1 二期双组(最基础形式)

Yit=α+β1Treati+β2Postt+δ(Treati×Postt)+εit

  • Treati=1Treat_i=1:处理组;00:对照组

  • Postt=1Post_t=1:政策后;00:政策前

  • 关键系数 δ\deltaDID 效应(政策影响)


三、多期双向固定效应(TWFE)

真实数据往往是面板形式:多个年份 × 多个个体。
则可扩展为:

Yit=αi+λt+δ(Treati×Postt)+εit

  • αi\alpha_iαi:个体固定效应(控制不变特征)

  • λt\lambda_tλt:时间固定效应(控制年度冲击)

  • δ\deltaδ:DID 效应(平均处理效应 ATT)


当政策分多期生效时,可使用 事件时间法(Event-Time DID) 估计不同滞后与提前期的动态效应。


四、平行趋势检验(Parallel Trend Test)

目的:验证在政策前两组的趋势相似(关键假设!)。

4.1 视觉检验

绘制处理组与对照组在政策前后的平均 Y 值趋势

若趋势平行 → 假设较可信


4.2 回归检验(事件时间法)

引入一系列时间相对虚拟变量(Leads/Lags):

  • Di,t+kD_{i,t+k}:事件相对时间虚拟变量(如“政策前2年”、“政策后1年”)

  • δk\delta_k:对应期的效应估计

  • 画出 δk\delta_k 的系数与置信区间 → 即“事件时间图(Event Study Plot)”



五、事件时间图绘制示例(Stata & Python)

5.1 Stata 版本

* Step 1: 生成事件相对期变量

gen rel_year = year - policy_year


* Step 2: 生成虚拟变量(排除基准期,如 rel_year = -1)

tab rel_year, gen(d)


* Step 3: 估计模型(固定效应 + cluster)

xtreg y d2 d3 d4 d5 d_0 d1 d2 d3 d4 if rel_year!=-1, fe cluster(id)


* Step 4: 绘图

coefplot, keep(d*) vertical yline(0) ciopts(recast(rcap)) title("Event Study: Policy Effects Over Time")

事件时间图绘制示例(Stata & Python)

5.2 Python 版本(linearmodels)

from linearmodels.panel import PanelOLS

import pandas as pd

import statsmodels.api as sm


# 构造相对期虚拟变量

for k in range(-3, 4):

   if k != -1:

       df[f"leadlag_{k}"] = (df["year"] - df["policy_year"] == k).astype(int)


# 固定效应回归

exog_vars = [c for c in df.columns if c.startswith("leadlag_")]

mod = PanelOLS(df["y"], sm.add_constant(df[exog_vars]), entity_effects=True, time_effects=True)

res = mod.fit(cov_type="clustered", cluster_entity=True)

print(res)

Python 版本(linearmodels)



六、稳健性检验(Robustness Checks)

检验方向

方法说明

平行趋势

改基准期、仅用政策前样本验证

安慰剂检验

随机分配政策年/处理组

多期政策

使用 Sun & Abraham (2021) 动态DID

控制变量

加入X_it(宏观/行业指标)

Cluster 调整

按 id、year、或双聚类(cluster2)


七、结果解释与报告模板

项目

描述

β

政策平均处理效应(ATT),解释“政策后处理组相对对照组的平均变化”

图表

平行趋势图、事件时间系数图

稳健性

改时间窗、替代样本、随机政策测试

显著性

报 t 值与显著性星号(*, **, ***)

推荐图表呈现:

图1:政策实施前后两组平均 Y 值趋势图

图2:事件时间系数图(横轴:相对期;纵轴:效应估计)



八、Stata / Python 快速模板汇总

软件

命令/包

说明

Stata

reghdfe y treat##post, absorb(id year) cluster(id)

双向固定效应


eventstudyinteract

Sun & Abraham (2021) 动态DID

Python

PanelOLS (linearmodels)

支持 FE 回归


did (econtools) / py-did

自动估计与绘图


九、常见错误与避坑指南

忽略平行趋势检验

样本分布不平衡(过多 control 或极少 treat)

政策时间不一致但仍使用简单 DID

聚类标准误错误(应按面板单位 cluster)

忽视动态效应(只看平均 DID)



十、写作与论文报告建议

描述性统计:报告政策前后均值差异。

主回归表:DID 主结果 + 控制变量 + FE。

平行趋势检验图:政策前平行,政策后显著偏离。

事件时间图:动态效应曲线及置信区间。

稳健性附录:包括安慰剂、替代样本、异质性。


 

金融学 Finance 论文方法与论文代写服务


选题—识别—数据—回归—稳健性—写作—引用 全流程梳理,产出:1 页任务单 + 方法复现路径 + 图表与排版规范清单

提交后,我们将在 24 小时内回邮(包含题目、数据源、软件栈、DDL 等)。





我们的服务

100%原创无抄袭

严格按照学校要求完成,从审阅资料到论文代写交稿严格把关,100%原创论文,TurnitinUK查重检测,E-convier向您做无抄袭担保!

100%准时交稿(7X24小时客服)

论文导师24小时待命,严格审核订单时间,100%确保在约定时限前交付,专业的客服体系,保证随叫随到,保证及时修改

100%本地导师

E-convier超过1800名英语母语professional writers,其中95%是英国本地导师,并具有Maste或者PhD以上学位

SSL个人信息加密系统

E-convier为了保护您的个人信息和论文安全,所有资料全部通过银行级SSL256数据加密,永远做到让您高枕无忧

E-convier论文代写,2008年创办,10年知名品牌!

论文定制只需三步——随时随地管理您的订单!