eventbaseline:事件研究的估算与可视化

文摘   2024-10-28 22:00   山西  

👇 连享会 · 推文导航 | www.lianxh.cn

🍓 课程推荐:2024 机器学习与因果推断专题
主讲老师:司继春 (上海对外经贸大学) ;张宏亮(浙江大学)
课程时间:2024 年 11 月 9-10 日 ;16-17日
课程咨询:王老师 18903405450(微信)

课程特色 · 2024机器学习与因果推断

  • 懂原理、会应用。本次课程邀请了两位老师合作讲授,目的在于最大限度地实现理论与应用的有机结合。为期四天的课程,分成两个部分:第一部分讲解常用的机器学习算法和适用条件,以及文本分析和大语言模型;第二部分通过精讲 4-6 篇发表于 Top 期刊的论文,帮助大家理解各类机器学习算法的应用场景,以及它们与传统因果推断方法的巧妙结合。
  • 以 Top 期刊论文为范例。目前多数人的困惑是不清楚如何将传统因果推断方法与机器学习结合起来。事实上,即便是 MIT 和 Harvard 的大牛们也都在「摸着石头过河」。为此,通过论文精讲和复现来学习这部分内容或许是目前最有效的方式了。张宏亮老师此前在浙江大学按照这一模式教授了「因果推断和机器学习」课程,效果甚佳:学生们能够逐渐建立起研究设计的理念,并在构造识别策略时适当地嵌入机器学习方法。

温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:

作者: 高瑜 (格罗宁根大学)
邮箱: gaoyuashley@163.com

编者按: 本文主要参考了以下内容,特此致谢!
source:Koren, Miklós. 2024. "EVENTBASELINE: Correct Event Study After XTHDIDREGRESS  -LINK- Roth, Jonathan. 2024a. Interpreting Event-Studies from Recent Difference-in-Differences Methods. -PDF-
Roth, Jonathan. 2024b. Synthetic difference in differences estimation [data set]. -dta-

1. 简介

现代双重差分(DID)分析通常显示一个事件研究图,允许研究者评估处理组和对照组在处理前后趋势的差异。事件研究图允许研究者通过“视觉推断”来确定处理组的趋势是否在处理时间前后与对照组的趋势有显著偏离。

然而,传统的事件研究方法在处理异质性处理效应时往往力不从心,尤其是在涉及复杂的面板数据时,结果有时难以解释。为了解决这些挑战,Koren, Miklós(2024)编写了 eventbaseline 命令。

这一命令为我们提供了一种强大且灵活的方法,旨在处理通过 xthdidregress(双重差分方法的一种扩展)生成的系数,使其能够生成相对基准期的事件研究图。这使得研究者可以清晰地观察处理效应在事件发生前后如何变化。

本文将详细介绍实现事件研究图的 Stata 命令 eventbaseline 的使用场景、方法原理、模型设定及其实际操作步骤。

2. 模型设定

在传统的事件研究中,我们通常会使用动态双向固定效应( TWFE )模型进行分析,但这种方法在面对异质性处理效应时容易产生偏差。而通过 eventbaseline 与 DID 方法 的结合,研究者可以更准确地估计出处理效应在不同时间点的变化。尤其是对于那些具有复杂结构的面板数据或多时间段的处理,eventbaseline 提供了更加清晰的效应图表。

2.1 主要优势

  • 灵活的基准期设定:可以选择某个特定时间点或处理前多个时间段的平均值作为基准。
  • 动态处理效应估计:展示事件前后多个时间点的效应,适用于分析滞后效应或渐进影响。
  • 结合 DID 和事件研究:通过引入 DID 方法的思想,提高因果推断的可信性。

2.2 基本原理

eventbaseline 的模型基础是 双重差分模型(Difference-in-Differences, DID),并结合了事件研究(Event Study)的方法。

它的主要目的是对xthdidregress (Stata 中用于执行高维双重差分模型的命令)生成的系数进行再处理,使得我们可以评估某个事件发生前后不同时间点的平均处理效应(ATT,Average Treatment Effect on the Treated)。

2.2.1 双重差分模型(Difference-in-Differences, DID)

eventbaseline 的核心基于 DID 模型。DID 是一种用于估计某个干预或事件的影响的准实验方法。它通常用于观察某一事件或政策在不同组别中的影响,比如一个组受到干预,另一个组没有受到干预,通过比较这两个组在不同时间点的差异,来估计干预效果。

DID 模型的基本形式: 

其中:

  • 是结果变量,比如股票价格、销售量等;
  • 表示该单位(如公司或地区)是否受到事件或政策的影响;
  • 表示该时间点是否在事件或政策发生之后;
  • 是感兴趣的参数,表示事件或政策的影响(即 DID 估计量)。

( Average Treatment Effect on the Treated )是通过以下双重差分公式计算的: 

其中:

  • 表示受影响群体在政策之后的平均结果;
  • 表示受影响群体在政策之前的平均结果;
  • 表示未受影响群体在政策之后的平均结果;
  • 表示未受影响群体在政策之前的平均结果。

2.2.2 调整处理效应

eventbaseline 的作用是将 xthdidregress 生成的处理效应系数通过基准调整,转化为相对于某个时间点或平均值的事件研究结果。

1. 原始系数矩阵

设原始的处理效应系数矩阵为 ,假设协方差矩阵为

2. 累积差分矩阵(Wcum)

Wcum 矩阵用于将时间点之间的系数调整为差分形式。其构造方式如下: 

其中,前部分处理前的系数为差分,后部分保持处理后的原始系数。

3. 基准调整矩阵(W0)

  • 如果基准期是处理前的某个时间点(如 ): 

  • 如果基准期是处理前的平均值: 

4. 调整后的系数矩阵

调整后的处理效应系数矩阵 通过以下公式计算: 

5.调整后的协方差矩阵

调整后的协方差矩阵通过以下公式计算: 

6. 置信区间计算

调整后的系数的 95% 置信区间可以通过以下公式计算: 

  其中:

  • 是调整后的系数,
  • 是调整后协方差矩阵的对角元素,
  • 是标准正态分布的临界值,通常为 1.96(对于 95% 置信区间)。

3. Stata 实操

3.1 eventbaseline 命令 和 xthdidregress 命令

命令安装:

ssc install eventbaseline, replace

命令语法1:

xthdidregress ra (ovar [omvarlist]) (tvar) [if] [in] [weight], group(groupvar) [options]

其中,

  • raxthdidregress 提供的估计方法之一,表示使用回归调整法来估计双重差分处理效应。RA 方法通过在回归模型中控制潜在混杂变量来调整处理效应估计,旨在提高估计的准确性。该命令同时提供了 twfe (两阶段固定效应法)、ipw (反概率加权法)  aipw(增强的反概率加权法)等来估计处理效应
  • ovar:结果变量,即所分析的因变量。
  • omvarlist:协变量列表,这是可选的,如果你认为结果变量受其他协变量的影响,可以通过协变量来控制这些影响。协变量可以包含多个因子变量或连续变量,这些变量可能与结果变量相关联,能帮助调整估计的处理效应。
  • tvar:处理变量,二元变量(0 或 1),表示某个单位是否受到了处理。
  • [if] [in]:可选项,用于筛选特定条件下的数据或限制分析的观测范围。
  • [weight]:可选项,指定权重变量,可以使用 fweightsaweightspweights
  • group(varname):组变量,用于指定处理组的标识符,如企业、个人或地区的 ID。
  • [options]: 其他选项,如 vce 指定标准误的类型,level 设置置信水平,controlgroup 指定对照组类型等。

命令语法2:

eventbaseline, [pre(#) post(#) baseline(string) graph generate(name)]

其中,

  • pre:指定在估计中包含的处理前时间段的数量,其默认值为1,表示会包含事件前的 1 个时期。
  • cost:指定在估计中包含的处理后时间段的数量,其默认值为3,表示会包含事件后 3 个时间点。
  • baseline:指定基准期的选择。可选值: 负数、average、atet。负数: 指定处理前的某个时间点作为基准期,例如 baseline(-1) 表示处理前最后一个时间点。average: 使用处理前的平均值作为基准期。atet: 生成报告中的表格将显示处理后各时间段的平均值减去处理前的平均值。
  • graph:如果选择了 graph 选项,将使用默认设置绘制事件研究图,展示基准调整后的处理效应和置信区间。
  • generate(name):指定存储处理效应和置信区间的 frame 名称。

3.2 具体示例

下面以Roth, Jonathan. 2024b的df数据集来示例来展示如何在Stata中使用eventbaseline命令来执行事件研究图的操作。

(1) 导入数据并生成变量:

  • use "df.dta": 导入数据库
  • replace t = t + 100: 将时间变量 t 增加 100
  • xtset i t: 设置面板数据,i 是个体或组的标识符,t 是时间变量。

(2) 对数据进行DID处理:

  • xthdidregress ra (y) (d), group(i): 运行双重差分回归,y 为结果变量,d 为处理效应变量,i 为组标识符。

(3) 生成事件研究图:

  • eventbaseline, pre(5) post(5) baseline(-1) graph: 使用处理前5个时间段和处理后5个时间段,以处理前最后一个时间点为基准,生成事件研究图。

(4) 输出结果:

3.3 结果保存

在 Stata 中,执行完 xthdidregresseventbaseline 命令后,你可以通过以下几种方法保存结果,包括系数、置信区间、回归表以及生成的图表。

1. 保存回归结果

在 Stata 中使用 xthdidregress 之后,可以使用 estimates store 保存回归结果:

xthdidregress y (d), group(i)
estimates store myresults
  • myresults 是你指定的保存的结果名称。稍后可以通过 estimates restore 重新加载这些结果。

2. 导出回归结果到表格

你可以使用 outreg2estout 命令将回归结果导出到文件(如 Word、Excel 或文本文件)中:

使用 outreg2 导出到 Word 文档:

outreg2 using results.doc, word replace
  • results.doc 是保存的文件名,word 指定导出到 Word 格式,replace 表示如果已有文件,则覆盖它。

使用 esttab 导出到文本文件:

esttab using results.txt, replace
  • results.txt 是保存的文件名,replace 表示如果已有文件,则覆盖它。

3. 保存 eventbaseline 结果eventbaseline 中,你可以使用 generate 选项保存系数和置信区间到一个 frame:

eventbaseline, pre(5) post(5) baseline(-1) generate(event_results)

这将把处理效应系数、置信区间等信息保存到名为 event_results 的 frame 中。你可以稍后查看这些结果:

frame list event_results

4. 保存事件研究图生成图表后,你可以使用 graph export 命令将图表保存为 PNG、PDF 或其他格式:

graph export eventstudy.png, replace
  • eventstudy.png 是保存的文件名,replace 表示如果已有文件,则覆盖它。你也可以将其导出为 PDF:
graph export eventstudy.pdf, replace

4. 结论

本文主要介绍了事件研究图的生成方法,即 Stata 中的 eventbaseline 命令及实操示例。该命令为研究者提供了一个强大的工具,能够深入挖掘事件发生前后的动态效应,并且自动将双重差分模型中的系数调整为相对于某一基准的动态处理效应估计。

希望本文能够帮助读者更好地理解和应用 eventbaseline 命令,以解决在研究中遇到的具体问题。

5. 参考文献

  • Koren, Miklós. 2024. "EVENTBASELINE: Correct Event Study After XTHDIDREGRESS  -LINK- Roth, Jonathan. 2024a. Interpreting Event-Studies from Recent Difference-in-Differences Methods. -PDF-
  • Roth, Jonathan. 2024b. Synthetic difference in differences estimation [data set]. -dta-

6. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 事件研究 csdid 多期did, m
安装最新版 lianxh 命令:
ssc install lianxh, replace

  • 侯新烁, 2019, 多期DID:平行趋势检验图示, 连享会 No.112.
  • 刘欣妍, 2021, Stata:一文读懂事件研究法Event Study, 连享会 No.678.
  • 周瑾, 2024, sdid_event命令:合成DID事件研究法, 连享会 No.1482.
  • 左祥太, 2021, Event Study:事件研究法的Stata实现, 连享会 No.94.
  • 左祥太, 2021, Stata:事件研究法的编程实现, 连享会 No.707.
  • 张子楠, 2022, DID偏误问题:多时期DID的双重稳健估计量(下)-csdid, 连享会 No.1027.
  • 张梓瑶, 2021, 如何在R语言中实现多期DID, 连享会 No.829.
  • 彭晴, 2022, DID新进展:异质性多期DID估计的新方法-csdid, 连享会 No.1071.
  • 朱学贵, 2020, 多期DID之安慰剂检验、平行趋势检验, 连享会 No.259.
  • 杜静玄, 2022, Stata:事件研究法的稳健有效估计量-did_imputation, 连享会 No.853.
  • 杨云帆, 2023, 论文复现:多期DID应用之地方选举的兴衰, 连享会 No.1321.
  • 笑花心, 2020, tfdiff:多期DID的估计及图示, 连享会 No.464.
  • 经菠, 2021, 事件研究法:Stata该用什么命令, 连享会 No.745.
  • 袁洛琪, 2021, Stata:面板事件研究法-eventdd, 连享会 No.826.
  • 连享会, 2024, 2024 政策优化和机制分析专题-连享会, 连享会 No.1395.
  • 连玉君, 2020, 事件研究法笔记:Stata连享会, 连享会 No.411.
  • 邹恬华, 2021, 多期DID文献解读:含铅汽油与死亡率和社会成本-L113, 连享会 No.622.
  • 郭盼亭, 2022, Stata:图示事件研究分析结果-eventcoefplot, 连享会 No.903.
  • 陈波, 2022, Stata:一行代码绘制平行趋势图-eventdd, 连享会 No.927.
  • 鲁维洁, 2020, Stata:短期事件研究法(Event_Study)教程, 连享会 No.164.

🍓 课程推荐:2024 机器学习与因果推断专题
主讲老师:司继春 (上海对外经贸大学) ;张宏亮(浙江大学)
课程时间:2024 年 11 月 9-10 日 ;16-17日
课程咨询:王老师 18903405450(微信)

尊敬的老师 / 亲爱的同学们:

连享会致力于不断优化和丰富课程内容,以确保每位学员都能获得最有价值的学习体验。为了更精准地满足您的学习需求,我们诚挚地邀请您参与到我们的课程规划中来。请您在下面的问卷中,分享您 感兴趣的学习主题或您希望深入了解的知识领域 。您的每一条建议都是我们宝贵的资源,将直接影响到我们课程的改进和创新。我们期待您的反馈,因为您的参与和支持是我们不断前进的动力。感谢您抽出宝贵时间,与我们共同塑造更加精彩的学习旅程!https://www.wjx.cn/vm/YgPfdsJ.aspx# 再次感谢大家宝贵的意见!

New! Stata 搜索神器:lianxhsongbl  GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉  使用:
. lianxh DID 倍分法
. songbl all

🍏 关于我们

  • 连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 直通车: 👉【百度一下: 连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。

连享会
连玉君老师团队分享,主页:lianxh.cn。白话计量,代码实操;学术路上,与君同行。
 最新文章