查看原文
其他

DID前沿: 5种方法估计事件研究的因果效应, 并使用绘制系数和置信区间, 详细代码和数据

计量经济圈 计量经济圈 2022-05-11

凡是搞计量经济的,都关注这个号了

稿件:econometrics666@126.com

所有计量经济圈方法论丛的code程序, 宏微观数据库和各种软件都放在社群里.欢迎到计量经济圈社群交流访问.

1.多期DID或渐进DID或交叠DID, 最新Stata执行命令整理如下供大家学习, 2.双向固定效应多期DID最新进展和代码汇总, 关于控制变量和固定效应选取的讨论,3.多期DID中使用双向固定效应可能有问题! 又如何做平行趋势检验? 多期DID方法的最新进展如何?

这个模拟示例说明了如何使用一系列方法估计事件研究的因果效应,并使用 event_plot 命令绘制系数和置信区间。在Stata上运行过代码,没问题的。
您将需要以下命令:
  • did_imputation(Borusyak 等人,2021 年):在 SSC 上可用

  • did_multiplegt(de Chaisemartin 和 D'Haultfoeuille 2020):在 SSC 上可用

  • eventstudyinteract(San and Abraham 2020):在 SSC 上可用

  • csdid(Callaway 和 Sant'Anna 2020)v1.5:在 SSC 上可用

// 生成在 15 个周期内观察到的 300 个单位的完整面板clear alltimer clearset seed 10global T = 15global I = 300
set obs `=$I*$T'gen i = int((n-1)/$T )+1
gen t = mod((n-1),$T )+1
tsset i t
// 在 Ei=10..16 上均匀地随机生成处理推出年份(请注意,t>=16 期间将没有用,因为到那时所有单位都已处理)gen Ei = ceil(runiform()*7)+$T -6 if t==1   // 第一次处理单元的年份bys i (t): replace Ei = Ei[1]gen K = t-Ei    //自处理以来的期数(如果从未处理过,为缺失值)gen D = K>=0 & Ei!=.  // 处理虚拟变量
// 生成具有平行趋势和异质处理效应的结果变量
gen tau = cond(D==1, (t-12.5), 0)  // 异质性处理效应(在这种情况下随日历时间变化)
gen eps = rnormal()  // 误差项
gen Y = i + 3t + tauD + eps  // 结果(FE 不起作用,因为所有方法都控制它们)

*下图中i为个体,t为时期,Ei为个体i在哪个时期受到政策处理,K为个体i在处理前或后多少期,D为虚拟变量,等于1若个体i为处理当前及后期。

// 1.使用 Borusyak 等人的 did_imputation 进行估计。(2021)

did_imputation Y i t Ei, allhorizons pretrend(5)event_plot, default_look graph_opt(xtitle("Periods since the event") ytitle("Average causal effect") title("Borusyak et al. (2021) imputation estimator") xlabel(-5(1)5))
estimates store bjs  // 存储估计值以备后用

// 2.使用 de Chaisemartin 和 D'Haultfoeuille (2020) 的 did_multiplegt 进行估计

did_multiplegt Y i t D, robust_dynamic dynamic(5) placebo(5) breps(100) cluster(i) event_plot e(estimates)#e(variances), default_look graph_opt(xtitle("Periods since the event") ytitle("Average causal effect") title("de Chaisemartin and D'Haultfoeuille (2020)") xlabel(-5(1)5)) stub_lag(Effect#) stub_lead(Placebo#) together
matrix dcdh_b = e(estimates)  // 存储估计值以备后用
matrix dcdh_v = e(variances)

// 3.使用 Callaway 和 Sant'Anna 的 cldid 进行估计(2020 年)

gen gvar = cond(Ei==., 0, Ei)  //csdid 命令所需的组变量csdid Y, ivar(i) time(t) gvar(gvar) notyet
estat event, estore(cs)  //这会同时生成和存储估计值
event_plot cs, default_look graph_opt(xtitle("Periods since the event") ytitle("Average causal effect") xlabel(-14(1)5) title("Callaway and Sant'Anna (2020)")) stub_lag(T+#) stub_lead(T-#) together

// 4.使用 Sun 和 Abraham 的 eventstudyinteract 进行估计 (2020)

sum Eigen lastcohort = Ei==r(max) // 最新或从未处理过的队列的虚拟变量
forvalues l = 0/5 {
gen Ll'event = K==l'
}
forvalues l = 1/14 {
gen Fl'event = K==-l'
}
drop F1event  //将 K=-1(以及 K=-15)归一化为零
eventstudyinteract Y Levent Fevent, vce(cluster i) absorb(i t) cohort(Ei) control_cohort(lastcohort)
event_plot e(b_iw)#e(V_iw), default_look graph_opt(xtitle("Periods since the event") ytitle("Average causal effect") xlabel(-14(1)5) title("Sun and Abraham (2020)")) stub_lag(L#event) stub_lead(F#event) together
matrix sa_b = e(b_iw)  // 存储估计值以备后用matrix sa_v = e(V_iw)

// 5.TWFE OLS 估计(这里是正确的,因为处理效应的同质性)

reghdfe Y Fevent Levent, a(i t) cluster(i)
event_plot, default_look stub_lag(L#event) stub_lead(F#event) together graph_opt(xtitle("Days since the event") ytitle("OLS coefficients") xlabel(-14(1)5) title("OLS"))
estimates store ols  // 存储估计值以备后用
// 根据处理后的周期数构造真实平均处理效应的向量matrix btrue = J(1,6,.)matrix colnames btrue = tau0 tau1 tau2 tau3 tau4 tau5qui forvalues h = 0/5 { sum tau if K==h' matrix btrue[1,h'+1]=r(mean)}
// 使用存储的估计组合所有图event_plot btrue# bjs dcdh_b#dcdh_v cs sa_b#sa_v ols, stub_lag(tau# tau# Effect# T+# L#event L#event) stub_lead(pre# pre# Placebo# T-# F#event F#event) plottype(scatter) ciplottype(rcap) together perturb(-0.325(0.13)0.325) trimlead(5) noautolegend graph_opt(title("Event study estimators in a simulated panel (300 units, 15 periods)", size(medlarge)) xtitle("Periods since the event") ytitle("Average causal effect") xlabel(-5(1)5) ylabel(0(1)3) legend(order(1 "True value" 2 "Borusyak et al." 4 "de Chaisemartin-D'Haultfoeuille" 6 "Callaway-Sant'Anna" 8 "Sun-Abraham" 10 "OLS") rows(3) region(style(none)))
///以下几行用更复杂的东西替换了 default_look
xline(-0.5, lcolor(gs8) lpattern(dash)) yline(0, lcolor(gs8)) graphregion(color(white)) bgcolor(white) ylabel(, angle(horizontal)) /// ) /// lag_opt1(msymbol(+) color(cranberry)) lag_ci_opt1(color(cranberry)) /// lag_opt2(msymbol(O) color(cranberry)) lag_ci_opt2(color(cranberry)) /// lag_opt3(msymbol(Dh) color(navy)) lag_ci_opt3(color(navy)) /// lag_opt4(msymbol(Th) color(forest_green)) lag_ci_opt4(color(forest_green)) /// lag_opt5(msymbol(Sh) color(dkorange)) lag_ci_opt5(color(dkorange)) /// lag_opt6(msymbol(Oh) color(purple)) lag_ci_opt6(color(purple)) graph export "five_estimators_example.png", replace
*代码放在社群里,群友可以下载下来,自己运行一下,很好理解。

关于相关计量方法视频课程,文章,数据和代码,参看 1.面板数据方法免费课程, 文章, 数据和代码全在这里, 优秀学人好好收藏学习!2.双重差分DID方法免费课程, 文章, 数据和代码全在这里, 优秀学人必须收藏学习!3.工具变量IV估计免费课程, 文章, 数据和代码全在这里, 不学习可不要后悔!4.各种匹配方法免费课程, 文章, 数据和代码全在这里, 掌握匹配方法不是梦!5.断点回归RD和合成控制法SCM免费课程, 文章, 数据和代码全在这里, 有必要认真研究学习!6.空间计量免费课程, 文章, 数据和代码全在这里, 空间相关学者注意查收!
可以参看:0.双重差分DID方法免费课程, 文章, 数据和代码全在这里, 优秀学人必须收藏学习!1.DID运用经典文献,强制性许可:来自对敌贸易法的证据3.截面数据DID讲述, 截面做双重差分政策评估的范式4.RDD经典文献, RDD模型有效性稳健性检验5.事件研究法用于DID的经典文献"环境规制"论文数据和程序6.广义DID方法运用得非常经典的JHE文献7.DID的经典文献"强制许可"论文数据和do程序8.传销活动对经济发展影响, AER上截面数据分析经典文9.多期DID的经典文献big bad banks数据和do文件10.因果推断IV方法经典文献,究竟是制度还是人力资本促进了经济的发展?11.AER上因果关系确立, 敏感性检验, 异质性分析和跨数据使用经典文章12.第二篇因果推断经典,工作中断对工人随后生产效率的影响?13.密度经济学:来自柏林墙的自然实验, 最佳Econometrica论文,14.AER上以DID, DDD为识别策略的劳动和健康经济学,15.一个使用截面数据的政策评估方法, 也可以发AER,16.多期DID模型的经典文献,big bad banks讲解",17.多期DID的经典文献big bad banks数据和do文件,18.非线性DID, 双重变换模型CIC, 分位数DID,19.模糊(Fuzzy)DID是什么?如何用数据实现呢?20.多期DID的big bad banks中文翻译版本及各细节讲解,21.DID中行业/区域与时间趋势的交互项, 共同趋势检验, 动态政策效应检验等,22.截面数据DID操作程序指南, 一步一步教你做,23.DID的研究动态和政策评估中应用的文献综述,25.DID双重差分方法, 一些容易出错的地方,26.连续DID, DDD和比例DID, 不可观测选择偏差,27.加权DID, IPW-DID实证程序百科全书式的宝典,28.DID和DDD, 一个简明介绍, 双重和三重差分模型,29.DID过程中总结的地图展示技巧,30.DID的平行趋势假定检验程序和coefplot的其他用法,31.截面DID, 各种固定效应, 安慰剂检验, 置换检验, 其他外部冲击的处理,32.实践中双重差分法DID暗含的假设,33.过去三十年, RCT, DID, RDD, LE, ML, DSGE等方法的“高光时刻”路线图,34.计量院士首次用DID方法分析, 中国封城对新冠病毒扩散的影响!,35.截面DID, 各种固定效应, 安慰剂检验, 置换检验, 其他外部冲击的处理,36.诺奖夫妇的中国学生, “DID小公主”的成名之作, 茶叶价格与中国失踪女性之谜!,37.前沿: 反向DID, 反向双重差分法DDR全解析, 辅以实证示例!38.英诺丁汉大学校长为你讲解逐年PSM匹配-DID方法的操作, 并配上自己写的一篇范文!39.逐年PSM匹配后再DID识别因果的实证范文, 这就是逐年PSM-DID的操作范式!40.用事件研究法进行因果识别如何做? 有什么好处? 与DID结合起来潜力无穷!41.Abadie半参数双重差分DID估计量, 使你的平行趋势假设更加可信!42.弹性DID, DID的终极大法, 关于DID各方法总结太赞了!43.二重差分法分析(DID)44.比DID更加灵活的DDID政策效应评估方45.DID思路和操作,一篇相关实证文献46.二重差分法深度分析(DID),三重差分兼论47.面板数据的DID估计,透彻解读48.PSM-DID, DID, RDD, Stata程序百科全书式的宝典49.关于DID的所有解读, 资料, 程序, 数据, 文献和各种变形都在这里50.分位数DID, PSMDID, 政策前协变量平衡性检验操作步骤和案例51.PSM-DID, DID实证完整程序百科全书式的宝典52.逐年匹配的PSM-DID操作策略, 多时点panel政策评估利器53.广义DID, DID最大法宝, 无所不能的政策评估工具54.渐进DID专治各种渐进性政策的良药, 可试一试疗效55.双重差分DID的种类细分, 不得不看的20篇文章56.找不到IV, RD和DID该怎么办? 这有一种备选方法57.在教育领域使用IV, RDD, DID, PSM多吗? 使用具体References58.DID和IV操纵空间大吗? 一切皆为P-hacking59.第一篇中文DID实证论文长啥样? 60.世界上第一篇DID实证论文长啥样?61.关于双重差分法DID的32篇精选Articles专辑!62.空间双重差分法(spatial DID)最新实证papers合辑!63.空间DID双重差分方法的文献, spatial DID64.多期三重差分法和双重差分法的操作指南65.多期双重差分法,政策实施时间不同的处理方法66.三重差分法运行和示例,67.如何设计双重差分法DID: 各种政策研究的最佳指南! 68.利用DID和事件研究法的Top5文章, 分析最低工资对低薪工作的影响!69.推出输出表格, 滚动回归, 事件研究, asdoc, asreg,asrol, estudy代码和解析!70.中国拖拉机vs牲畜: 事件研究法用于政策评估和因果识别, 与DID结合起来威力无穷!71.事件研究法逐步附上程序code和对应的解释, 这还不懂那就真的没办法了!72.推荐用渐进(多期)DID和事件研究法开展政策评估的论文及其实现数据和代码!73.田国强教授就AER知青上山下乡一文的态度和意见, 并就DID等方法给出了自己的观点,74.截面/队列DID大有前途, 让微观调查数据得以与DID方法结合起来

下面这些短链接文章属于合集,可以收藏起来阅读,不然以后都找不到了。

2.5年,计量经济圈近1000篇不重类计量文章,

可直接在公众号菜单栏搜索任何计量相关问题,

Econometrics Circle




数据系列空间矩阵 | 工企数据 | PM2.5 | 市场化指数 | CO2数据 |  夜间灯光 | 官员方言  | 微观数据 | 内部数据计量系列匹配方法 | 内生性 | 工具变量 | DID | 面板数据 | 常用TOOL | 中介调节 | 时间序列 | RDD断点 | 合成控制 | 200篇合辑 | 因果识别 | 社会网络 | 空间DID数据处理Stata | R | Python | 缺失值 | CHIP/ CHNS/CHARLS/CFPS/CGSS等 |干货系列能源环境 | 效率研究 | 空间计量 | 国际经贸 | 计量软件 | 商科研究 | 机器学习 | SSCI | CSSCI | SSCI查询 | 名家经验计量经济圈组织了一个计量社群,有如下特征:热情互助最多前沿趋势最多、社科资料最多、社科数据最多、科研牛人最多、海外名校最多。因此,建议积极进取和有强烈研习激情的中青年学者到社群交流探讨,始终坚信优秀是通过感染优秀而互相成就彼此的。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存