查看原文
其他

用事件研究法开展政策评估的过程, 手把手教学文章!

计量经济圈 计量经济圈 2023-02-17

凡是搞计量经济的,都关注这个号了
稿件:econometrics666@126.com
所有计量经济圈方法论丛的code程序, 宏微观数据库和各种软件都放在社群里.欢迎到计量经济圈社群交流访问.
世界银行刚出版了“政策评估”经典书籍, 包括当前主流政策评估计量方法
本文主要对Stata中的面板事件研究命令eventdd进行了详细的说明。第三部分对eventdd命令的编写进行详细的介绍,第四部分提供了相应的案例分析。因此这是一篇很好的手把手教学论文。

*可以结合下面这个教学视频看下面的文章。

正文

关于下方文字内容,作者:邵文焕, 华侨大学经济与金融学院,通信邮箱:2596093097@qq.com作者之前的文章:完整解读TOP5刊的"什么时候和如何对标准误做聚类调整?" 4位计量大佬的合作!
Clarke, D., & Tapia-Schythe, K. (2021). Implementing the panel event study. The Stata Journal, 21(4), 853–884.
Many studies estimate the impact of exposure to some quasi-experimental policy or event  using a panel event study design. These models, as a generalized extension of ‘differencein-differences’ or two-way fixed effect models, allow for dynamic lags and leads to the event of interest to be estimated, while also controlling for fixed factors (often) by area and time. In this paper we discuss the set-up of the panel event study design in a range of situations, and lay out a number of practical considerations for its estimation. We describe a Stata command eventdd that allows for simple estimation, inference, and visualization of event study models in a range of circumstances. We then provide a number of examples to illustrate eventdd’s use and flexibility, as well as its interaction with various native Stata routines, and other relevant user-written libraries such as reghdfe and boottest.
在面板数据中执行事件研究
摘要
许多研究使用面板事件研究设计来估计暴露于一些准实验政策或事件的影响。这些模型,作为“DID”或双向固定效应模型的广义扩展,允许动态滞后,同时也(通常)对区域和时间控制固定因素来对感兴趣的事件进行估计。在本文中,我们讨论了在一系列情况下的面板事件研究设计的设置,并提出了一些实际考虑中的估计。我们描述了一个Stata命令eventdd,它允许在各种情况下对事件研究模型进行简单的估计、推断和可视化。然后,我们提供了一些示例来说明eventdd的使用和灵活性,以及它与各种原生Stata例程的交互,以及其他相关的用户编写的库的交互,如reghdfe和boottest。
1 Introduction 引言
准实验方法的最新发展引起了面板事件研究模型的关注。使用面板观察结果(如州层面)的数据,该设计试图估计发生的某些事件的影响,或作用于某些确定的个体和时间段。他们试图将政策或事件没有发生或尚未发生的领域作为反事实使用。通过考虑采用事件与基准参考时期相比的结果变化,对事件滞后和领先期都进行了估计,允许在满足关键识别假设的情况下清晰地可视化地表示事件的因果影响。
这些方法已经由较老的DID模型,或双向固定效应模型所证实。这些模型通常试图检验自然实验的影响,在自然实验中,由于环境或政治因素(以及其他因素),事件被分配给某些个体,因此,通常不假定分配是随机的。事实上,正如我们在下一节中详细阐述的那样,事件研究模型中一致估计的关键假设是,事件在特定区域的发生与未来将发生的水平变化没有系统的关系。
这些模型广泛用于一系列背景下的实证分析,已应用于(在许多其他主题中)汽车工厂的关闭和阿片类药物过量(Venkataramani et al. 2020)、计划生育获取和儿童经济状况 (Bailey et al. 2018)、医疗保健改革和门诊医疗服务的使用 (Dimitrovová et al. 2020)以及大学改革和代际流动 (Suhonen and Karhunen 2019)。这些案例表明了(面板事件研究)在包括社会科学、医学和公共卫生在内的一系列领域中的使用,以及Abraham and Sun (2018)和Roth(2019)在一些经济期刊上对其使用频率的额外审查。一系列新兴的文献已经提出了在这种情况下的一些识别要求(Freyaldenhoven et al. 2019; Borusyak and Jaravel 2018; Abraham and Sun 2018; Athey and Imbens 2018; Schmidheiny and Siegloch 2019)。这些方法可以有一些限制,在每个样本的同一时期发生的事件的情况下,以及在事件交错发生的情况下。事实上,Athey和Imbens(2018)将这些设计称为“政策交错执行”(Staggered Adoption Designs),尽管在这里我们遵循的是面板事件研究中更常见的命名法。此外,这些方法与关于政策交错执行和单系数模型(single-coefficient model)的估计的更广泛的文献有关(de Chaisemartin and D’Haultfoeuille 2019; Callaway and Sant’Anna 2018; Goodman-Bacon 2018)。当我们在方法部分简要讨论这些模型时,我们的主要兴趣是完整的面板事件研究规范,它们有跟其他模型不同的思考之处。
在本文中,我们提供了对这些面板-事件研究模型的讨论,以及在这些设置中与它们的估计和推断相关的实际问题。我们还提供了eventdd命令,一个允许在事件研究中进行估计和推断的Stata命令,以及其结果的图形表示。该命令可以灵活地与内置的Stata命令,如regress和xtreg,以及用户编写的回归命令reghdfe进行交互,这在本文中描述的双向固定效应模型中非常方便(Correia 2016)。我们提供了在事件研究模型中的估计和推理的讨论。以及标准的推理过程,如稳健和聚类稳健推断,eventdd命令允许关于事件发生聚类性质推断(wild-bootstrap based inference respecting the clustered nature of the occurrence of events)的Wild自助抽样法(wild-bootstrap),特别是用户编写的boottest命令 (Roodman et al. 2019)。在回顾了第2节中面板事件研究模型背后的理论之后,我们将在第3节中讨论命令语法,然后在第4节中应用于特定实例的命令用法。
2 Methods 方法
2.1 Estimation 估计

考虑一个包含个体(州,state)s和时间t的面板。我们感兴趣的是估计事件发生在不同时间和不同州的影响。Events表示记录在个体s中采用该事件的时间段t,yst表示结果,面板事件的设定如下:


   (1)

这里的µs和λt是个体和时间固定效应,Xst是(可选地)时变控制变量,而εst是一个未观察到的误差项。在(1)中感兴趣事件的滞后期和领先期定义如下:

可以看到滞后和领先期是关于事件时期的二值变量。(2)和(5)中的J和K表示滞后和领先超过J期和K期的时期累积。一期的滞后或领先期被忽略以捕获事件已发生和不发生的区域之间的基准差异。在(1)的设定下,基准期是j=1的情况。

表1提供了这种设置的一个程式化示例。我们考虑四个州从2000年到2009年组成一个平衡的面板。Events变量在不同个体的不同时间发生,同时在一个体的情况中不会发生。这里包括了四个滞后和四个领先,即J = K = 4。滞后4或领先4表示超过了事件时期4个时期。
事件从未发生过的州(如表1中的状态C)作为纯控制组。这些个体在所有滞后和领先期都是0,并作为估计影响的反事实。这些控制组和采用感兴趣事件的州之间的差异在省略的基期中被锚定在0,即方程1中的第一个滞后。因此,与省略的基周期中的普遍差异相比,滞后和领先捕获了处理组的州和控制组的州之间的差异。因此,对事件后处理效果的无偏估计从根本上依赖于所谓的“平行趋势假设(parallel trends assumption)”。在没有处理的情况下,假定处理组的州和控制组的州将保持与基线期相似的差异。因此,当所有单位在某个时间点采用处理时,这些模型已被证明是未被识别的,或仅被识别为线性趋势(Schmidheiny and Siegloch 2019; Borusyak and Jaravel 2018). Schmidheiny and Siegloch (2019)表明,在这种情况下,有必要使滞后和领先超过一定的最大滞后(J)和领先(K)期。
表1:一个规范化的示例

面板事件研究是标准的双向固定效应(有时称为DID)模型的扩展,在该模型中,在处理状态下事件发生后的所有时期都包含一个“事件后(Post Event)”指标:

(6)

其中。式(1)提供了两个关键的不能在单系数模型观察到的关键信息片段。首先,完整的事件领先期允许检查预处理期间的平行趋势。虽然这并没有提供证据表明,该事件被采用和不被采用的个体在之后的时期一定会遵循类似的趋势(Kahn-Lang and Lang 2019)(这是这些模型的识别假设)。如果处理和未处理区域的趋势在事件前甚至都不平行,那么它们不太可能在事件后是平行的。其次,政策滞后期允许检查处理效果的时间性质,例如,处理效果出现的任何动态变化:随着时间的推移而增长或缩小,以及效果是短暂的还是永久性的。
一系列正在发展的文献,包括de Chaisemartin and D’Haultfoeuille(2019); Callaway and Sant’Anna (2018); Goodman-Bacon (2018)指出,当处理效应是异质的(跨组或时间段)时,从双向固定效应模型解释估计的存在挑战。Goodman-Bacon (2018)证明了当处理的异质性是在不同时期或不同组时可能导致的估计值偏离了处理组平均处理效应的加权平均值,这个问题在面板事件研究设计中得到了解决。然而,Abraham and Sun (2018)的研究结果表明,即使在这里研究的面板事件研究模型中,特定类型的异质性问题仍然存在。他们特别注意到,如果处理组之间存在异质性,特别是一些滞后和领先项中,则存在处理效应不合意的权重。在事件研究设计中还存在其他问题,如基于趋势前检验的模型选择带来的推断问题(Roth 2019)。eventdd命令并不会对这些特定的设置中进行修正,因为这些是面板事件研究设计的经验估计所固有的。然而,我们确实注意到,有一些替代的估计量是对面板事件研究设计的补充,并应被视为完整的估计和测试程序的一部分,如Abraham and Sun (2018)的堆叠DD(stacked DD)程序,Roth(2019)和Rambachan and Roth (2019)描述的敏感性测试;以及考虑处理效应动态路径的替代模型,如de Chaisemartin and D’Haultfoeuille (2019)和Callaway and Sant’Anna (2018)。由于其中许多都有某些语言的估计库,因此在第3节中讨论eventdd的命令语法和第4节中使用的示例时,我们将讨论设计了eventdd及其返回对象以促进与这些其他命令交互的方法。
2.2 Inference 推断
一个标准的推断问题是政策被分配到的个体以及随后的结果是与结果变量中随时间变化的潜在序列相关性相关的(Bertrand et al. 2004)。虽然来自(Bertrand et al. 2004)的推导是基于方程6形式的单系数模型,但关注的关键在于感兴趣的结果变量的高序列相关性,而感兴趣的自变量的变化相对较小。这种设置在公式1-5中描述的事件研究模型中得到了重复。因此,在这样的模型中进行推理时,解释这种组内相关性是基本的。
标准的解决方案是通过使用聚类稳健方差-协方差估计量(cluster-robust variance-covariance estimator,CRVE)来估计回归参数的标准误差和置信区间,从而允许组内自相关(within-cluster auto-correlation)。Stata中的vce(cluster clustvar)选项中的e(class)模型可以提供相应的估计。然而,正如已经被广泛记录的那样,标准的CRVEs只是渐近有效的,其中渐近行为取决于集群(聚类)的S→∞的数量(参见Cameron and Miller(2015)的综合评论)。当标准集群的数量太少时,CRVE通常是向下偏的,导致对零假设的过度拒绝。这种偏差可能会很严重(Cameron and Miller 2015; Mackinnon and Webb 2018)。
在实践中,知道有多少个集群是“太少”的取决于许多因素。虽然有一些经验法则,如在Angrist和Pischke(2008)中提出的42规则,这表明如果S≥42,标准聚类提供了一个很好的近似。这些方法在模拟下的性能也取决于集群的相对大小(Mackinnon和Webb 2017)。Cameron和Miller(2015)调查的一系列结果导致了他们的建议:如果在一个州-年面板中分析少于50个集群的数据(比如面板事件研究的案例),应该考虑其他推断方法。
在这种情况下,准实验设置通常是少于或大约50个集群。在考虑面板事件研究中变量的自相关,即使在较少集群的情况下,野聚类自助法(wild cluster bootstrap)被证明是一种成功的重抽样的方法(见Cameron 等人(2008);Cameron and Miller(2015);Roodman等人(2019))和Stata程序命令boottest((Roodman 2015)。最后,请注意,在集群很少的情况下,特别是发生事件的组数很少的情况下,推断会更加复杂。在这种情况下,已经提出了一些潜在的解决方案,如Mackinnon and Webb(2018); Conley and Taber(2011)已经描绘的一些情况。正如我们在下面的部分中所阐述的,eventdd命令允许根据感兴趣的上下文简单地访问各种推理选项,包括标准聚类(standard clustering)、自助法(bootstrap)以及各种基于Stata的原生CRVE程序以及用户编写的boottest命令的各种形式的野聚类自助法(wild cluster bootstrap)。
3 The eventdd command eventdd命令
面板事件研究可以在Stata中使用以下命令语法来实现:

eventdd varlist [if ] [ in ] [ weight ], timevar(timevar) ci(string)

[method baseline(#) level(#) accum lags(#) leads(#) noend noline keepbal(varname) absorb(varname) wboot wboot_op(string) balanced inrange graph_op(string) ci_op(string) coef_op(string) endpoints_op(string) * ]

所需的变量列表应该首先指定感兴趣的因变量,然后指定所有的控制变量,包括固定效应和在面板事件研究模型(公式1)都应该进入回归,但不包括滞后和领先项。方法选项指定基础模型的估计过程,可以是ols(普通最小二乘)、fe(固定效果)或hdfe(使用用户编写的reghdfe命令吸收多个层面的固定效应)。如果没有指定估计方法,则默认使用ols。在固定效应(fe)或高维固定效应(hdfe)模型的情况下,固定效应可以被吸收(如下面的选项中所讨论的),因此不需要输入到标准的变量语法中。在fe规范的情况下,数据必须首先在Stata中进行xt设置。基于这种语法,eventdd负责所有滞后项和领先项的生成、估计和推断,以及事件研究图的产生。在本文的第4节中提供了一些示例。
Options 选项
timevar 必选项。指定的时间变量应包含一个标准化值,其中0对应一个给定个体的感兴趣事件发生的时间段,-1表示事件前的一期,1表示事件后的一期,以此类推。对于没有发生该事件的任何个体(控制组),此变量应该包含缺失的值。
ci(string)是一个必需的选项,指示命令将生成的图形类型。rarea (带区域阴影)、rcap (带封顶尖钉)、rline (带线条),rcap 是默认的图表类型。只能指定一种类型,并且所有的时间间隔都将是同一类型。该外观可以用ci_op()进行修改。
baseline(#)指定了事件研究的参考基期,这是一个基期省略(baseline omitted category)的类别,应该对事件研究输出中的所有其他周期进行比较。默认情况下,如公式1所示,这个值设置为−1。
level(#)指定置信区间的百分比置信水平。默认为置信水平(95),也可以按设置的置信水平设置。这设置了回归输出的置信区间的水平,以及事件研究图和矩阵。如果需要野聚类标准误(wild clustered standard errors),会被被传递给boottest命令。
accum指定所有超过某些指定值的周期都应累积到最终点,在方程1中用J和K表示。例如,如果把滞后期(#)和领先期(#)都设置为10,那么accum将在回归和图形输出中显示一个单一系数,捕获处置前/处置后10个或更多的周期。如果没有指定accum,所有可能的滞后期和领先期将包括在模型和图形输出中。
lags(#)表示在事件研究中需要考虑的事件前时期的最大数量。这个选项需要在accum, keepbal 或者 inrange之后才能使用。只允许使用整数值。
leads(#)表示在事件研究中需要考虑的事件后时期的最大数量。这个选项需要在accum, keepbal 或者 inrange之后才能使用。只允许使用整数值。
noend当指定accum选项时,图形输出中不显示累计端点。
keepbal(varname)指定仅保留面板中平衡的个体以进行估算。这里的变量名表示个体的面板变量(如州)。在这种情况下,“balance”指的是在日历时间上的平衡。下面讨论的另一种选项((balanced)只允许在图形输出中考虑相对于处理的平衡滞后期和领先期。
ols指的是使用Statat的regress命令估计事件研究模型的图形输出。在这种情况下,个体的固定效应和时间固定效应必须包含在命令语法中指示的变量列表中。这是默认的估计方法。
fe指的是使用Statat的extreg命令估计事件研究模型的图形输出。在这种情况下,数据必须在使用之前进行xtset,并且个体固定效应不应该包含在命令语法中指示的变量列表中。时间固定效应仍然需要包含在命令语法中指示的变量列表中。
hdfe指的是使用Correia(2016)的用户编写的reghdfe命令(如果已安装)来估计事件研究模型的图形输出。如果指定了此选项,则还应指定absorb(varlist)选项,以指示在回归中应控制哪些固定效应。absorb(varlist)中指示的任何固定效应都不应包含在命令语法中指示的变量列表中。此选项不能与wboot选项结合使用。
absorb(varlist)仅在指定hdfe估计选项时才需要此选项。varlist确定要吸收的固定效应(例如个体固定效应)。有关更多详细信息,请参阅reghdfe(如果已安装)。
wboot表示由野聚类标准误(wild clustered standard errors)进行估计来生成输出图形。当指定时,每个滞后期和领先期的置信区间将使用野聚类自助法(wild cluster bootstrap)来计算。这需要Roodman(2015)的用户编写的boottest(如果已安装)。此选项不能与hdfe估计选项结合使用。
wboot_op(string)允许包含野聚类自助法中允许的任何其他选项,包括seed(#)为基于模拟的计算设置种子并复制置信区间,以及bootclust(varname)指定哪个变量来进行野聚类自助,等等。当设定置信水平(默认为95)时,应该在命令的置信水平选项中指示,并将其传递给wboot_op()。
balanced只有“平衡”的滞后期和领先期被绘制出来。这将产生一个只显示每个处理样本都有数据的滞后期和领先期的图片。因此,绘制的所有系数都将基于数据中的所有个体。虽然只绘制平衡的滞后期和领先期,但所有的单位和时间段将包括在事件研究的估计中。
inrange只绘制了指定的滞后期和领先期。虽然只绘制指定的的滞后期和领先期,但所有个体和时间时期都将包括在事件研究的估计中。
noline指的是在x轴上的事件之前的行不显示在图形输出上。
graph_op(string)允许包含twoway_options中允许的任何其他绘图选项,包括title_options, added_lines_options, axis_label_options等等。这也允许对图形轴使用替代标签。如果没有设定,将提供一个标准的图形输出。
ci_op(string)允许包含twoway_rarea、twoway_rcap或twoway_rline中允许的置信区间的任何图形选项,这取决于ci()中指示的CI类型;包括area_options,line_options和connect_options等。这并不允许使用graph_op()的一般选项。如果没有指定,则将提供一个标准的图形输出。
coef_op(string)允许包含散点图中允许系数的任何图形选项,包括marker_options和marker_label_options等。这并不允许使用graph_op()的一般选项。如果没有指定,则将提供一个标准的图形输出。
endpoints_op(string)允许包含在散点中允许的端点系数的任何图形选项,包括marker_options和marker_label_options等。这仅在指定accum和不允许使用graph_op()的一般选项时可用。如果没有指定,则将提供一个标准的图形输出。
*可以包括regress、xtreg或reghdfe允许的任何其他估计选项,并将其传递给指定的估计命令。这允许包含聚类标准误( clustered standard errors)或其他方差估计,如自举(bootstrap)或重叠(jackknife)估计(见vce_option),以及与面板事件研究回归模型中的潜在估计或推断相关的任何其他选项。

Returned Objects  返回结果

Macros:  宏

e(cmd) eventdd

e(cmdline) command as typed 命令的类型

e(depvar) name of dependent variable 因变量的名称

e(wtype) weight type 权重类型

e(clustvar) name of cluster variable 聚类变量名称

e(vce) vcetype specified in vce()  在vce()中指定的vce类型

e(vcetype) title used to label Std. Err. 标准误差的标题

Matrices: 矩阵

e(b) coefficient vector 系数向量

e(V) variance-covariance matrix of the estimators 方差-协方差估计矩阵

e(leads) all event leads, their lower bound, the point estimate, and their upper bound

所有事件的领先期,包括它们的下界、点估计和它们的上界

e(lags) all event lags, their lower bound, the point estimate, and their upper bound

所有事件的滞后期,包括它们的下界、点估计和它们的上界

e(V_lags_leads) variance-covariance matrix of the lags and leads estimators

滞后期和领先期的方差-协方差估计矩阵

需要注意的是如Rambachan 和 Roth (2019)依赖于滞后期和领先期的标准误差的点估计,都可以通过这里返回的矩阵获得。
4 Examples based on an Empirical Application 基于经验应用的实例
为了估计一个与无过错离婚改革(no fault divorce reform)相对应的面板事件研究规范,第一步是创建一个改革时间变量的标准化版本,假设数据中还没有该变量。特别是在这种情况下,在Stata中创建变量只需要减去改革的时期,即第2节中的时期t(数据中称为year)的Events(其中_nfd,代表无过错离婚)。具体程序如下:

. webuse set www.damianclarke.net/stata/

(prefix now "http://www.damianclarke.net/stata")

. webuse bacon_example.dta, clear

(Stevenson and Wolfers (2006) divorce example, provided by Goldring et al.)  //读取数据

. gen timeToTreat = year - _nfd  //设置变量

(429 missing values generated)

请注意,预期的缺失值(expected missing values)是为在此时期的任何时候都没有采用改革的个体产生的,并且在面板事件研究中作为纯粹的控制组。

第二步是根据公式1-5来估计事件研究。在本例中,事件研究模型的一般形式包括所有滞后期和领先期是:

(8)

如上所述,asmrs是所有女性的女性自杀率,相对于感兴趣的事件(fully saturating the model,完全饱和模型)包括J=21的滞后期和K=27的领先期。按照一般标准,参考基期被设置为−1:在每个个体下采用该事件之前的时期。个体和时间的固定效应分别包括为µ和λ。
eventdd命令提供了一个简单的语法来生成方程8中所有必要的滞后期和领先期来估计事件研究模型,并绘制点估计和置信区间。该命令需要两个选项:处置时间变量(timeToTreat)和置信区间图的类型,例如,我们为由上限误差条表示的间隔指定ci(rcap)。下面,我们要求该命令安静地运行(qui),但是在本节的后面,我们将记录一个示例,其中将显示完整的回归输出:

. #delimit ;

delimiter now ;

. qui

> eventdd asmrs pcinc asmrh cases i.year i.stfips, timevar(timeToTreat) ci(rcap)

> cluster(stfips) graph_op(ytitle("Suicides per 1m Women") xlabel(-20(5)25));//回归及相应设置

. #delimit cr

delimiter now cr

该命令存储所有事件的滞后期、它们的下界、点估计及其上界。例如,如果我们希望对整个滞后集的点估计以及它们的上下置信区间进行可视化。我们可以简单地检查返回的滞后矩阵:

mat list e(lags)

e(lags)[21,4]

由于我们没有指定估计方法,eventdd使用Stata的回归命令通过普通最小二乘回归来估计模型(如果指定了ols选项,则得到相同的结果)。我们还可以为事件研究模型要求其他估计方法;如果我们指定了fe选项,那么该模型会使用固定效应(FE)进行估计。

同样,我们可以通过heghdfe命令指定hdfe选项来有效地吸收多个级别的固定效应的结果,当我们必须控制许多固定效应时,这是非常有用的。请注意,在这种情况下,必须使用传递给reghdfe命令的absorb()选项来指定感兴趣的固定效应。例如,如果我们希望吸收时间和地理上的固定效应,必要的语法如下:

. #delimit ;

delimiter now ;

. eventdd asmrs pcinc asmrh cases, hdfe absorb(i.stfips i.year) timevar(timeToTreat)//指定感兴趣的固定效应

> ci(rcap) cluster(stfips) graph_op(ytitle("Suicides per 1m Women") xlabel(-20(5)25));

标准命令输出由回归输出组成,事件研究的滞后期系数和领先期系数及其置信区间如图1所示。正如Stevenson and Wolfers(2006)所讨论的,事件研究表明无过错离婚法通过后女性自杀率下降,改革通过8年后女性自杀率显著下降。我们注意到,在这个包含所有可能的滞后期和领先期的规范中(eventdd的默认行为),我们确实观察到在改革前的滞后11期和滞后21期的一些显著差异。然而,值得注意的是,这些滞后期距离处置的时间足够远,并非所有的处置个体都被观察到,因此这些显著的下降可能是由于这些变量的成分变化导致的。我们将在下面进一步讨论这个问题,并在讨论命令的balanced选项时将分析限制为平衡周期。然而,如果需要,我们也可以正式检验所有滞后项的联合显著性:
H0 : β21 = β20 =…… = β2 = 0   versus H1 : H0 does not hold
这可以使用Stata的test命令来简单地评估后估计(post-estimation):

. #delimit ;

delimiter now ;

. test lag21 lag20 lag19 lag18 lag17 lag16 lag15 lag14 lag13 lag12 lag11 lag10

> lag9 lag8 lag7 lag6 lag5 lag4 lag3 lag2;  //假设检验

( 1) lag21 = 0

( 2) lag20 = 0

( 3) lag19 = 0

( 4) lag18 = 0

( 5) lag17 = 0

( 6) lag16 = 0

( 7) lag15 = 0

( 8) lag14 = 0

( 9) lag13 = 0

(10) lag12 = 0

(11) lag11 = 0

(12) lag10 = 0

(13) lag9 = 0

(14) lag8 = 0

(15) lag7 = 0

(16) lag6 = 0

(17) lag5 = 0

(18) lag4 = 0

(19) lag3 = 0

(20) lag2 = 0

F( 20, 48) = 32.13

Prob > F = 0.0000

. #delimit cr

delimiter now cr

图1:基于无过错离婚改革的事件研究示例
注:事件研究模型遵循 (Stevenson and Wolfers 2006)中描述的无过错离婚分析,以及Goodman-Bacon(2018)中的复制/扩展。显示了方程8的点估计及其95%置信区间。基线(省略)对应的基准期是每个改革州实施改革前1年,由图中的实竖线表示。
这个“完全饱和(fully-saturated)”模型绘制所有可能的eventdd命令默认输出的滞后期和领先期。然而许多替代估计程序是允许的,例如避免上面观察到的滞后期和领先期在远离处置期是不一样的,这是因为只有在某些早期或后期采用该政策的州才在这些领先/滞后项中被观察到。这里我们将讨论一些这样的替代方案,并在eventdd命令中记录它们的语法。图2总结了每种情况下的图形输出。
限制可视化的滞后期和领先期(Limiting Visualized Lags and Leads)在绘图中只显示一些滞后/领先期可能是一个有趣的问题。例如,下面讨论的一个这样的情况只涉及绘制那些观察到每个处理个体(state)的滞后/领先项。通常来说inrange选项允许指定在图中应该只包含某些系数和CIs。我们在这里注意到,在这种情况下,基准回归模型将包括第一种情况中的所有周期,因此,这些滞后/领先项将仅仅对应于图1中的一个限制范围。例如,如果我们只要显示时间段-10和10之间的结果,则该命令将是:

. #delimit ;

delimiter now ;

. qui

> eventdd asmrs pcinc asmrh cases i.year, fe timevar(timeToTreat) ci(rcap) inrange

> lags(10) leads(10) cluster(stfips) graph_op(ytitle("Suicides per 1m Women"));//限制某些滞后或领先期

Note: with FE option do not include in varlist the categorical variables

that identify the individual fixed effect

. #delimit cr

delimiter now cr

本例中的输出如图2(a).所示绘制有限滞后/领先期的一种特殊情况包括,人们只希望显示系数和所有个体都有滞后和领先项的情况。我们将其称为平衡图,它可以非常简单地使用balanced选项来产生。在这种情况下,虽然所有的滞后和领先期都包含在基础的面板事件研究模型中,并且只有特定的周期被绘制在图上(如inrange),但我们不需要预先知道哪些周期是平衡的,因为eventdd会自动识别它们。正如面板(b)所示,在我们的案例中,平衡的时期包括了改革前5年和改革后11年之间的时期。在这种情况下,语法只需要指示balanced选项:

. #delimit ;

delimiter now ;

. qui

> eventdd asmrs pcinc asmrh cases i.year, fe timevar(timeToTreat) ci(rcap)

> balanced cluster(stfips) graph_op(ytitle("Suicides per 1m Women"));//设置平衡选项

Note: with FE option do not include in varlist the categorical variables

that identify the individual fixed effect

. #delimit cr

delimiter now cr

限制样本或累积的滞后/领先期(Restricting Samples or Accumulating Lags/Leads)与简单地关注未改变的基线模型中的特定系数相比,人们可能希望处理符合纳入标准的特定子样本,或作为避免不平衡滞后和领先期的另一种方法是限制积累滞后/领先期超过某些定义时间的周期,以及避免与所有个体都被处理的识别不足相关的问题(Schmidheiny and Siegloch 2019)。考虑我们希望包括15个滞后期和10个领先期的情况,但只估计具有每个周期有效数据单位的模型。特别是1964-1996年每年的数据,任何在1978年至1996年期间没有进行过错离婚改革的个体将(至少)有15个滞后期和10个领先期。1978年以前采用的单位滞后期将少于15个,1996年以后采用的个体滞后期将少于10个。为了实现基于这些领先/滞后项的平衡观察面板的估计,keepbal(varname)选项是可用的,其中变量名表示应该应用平衡的面板个体(在这种情况下,处理单元是州的stfips)。此外,还需要明确指出在平衡面板内绘制所感兴趣的时间段,例如滞后(15)和领先(10)。这一切都在下面的命令中实现了。

delimiter now ;

. eventdd asmrs pcinc asmrh cases, hdfe timevar(timeToTreat) ci(rcap) cluster(stfips)

> absorb(i.stfips i.year) keepbal(stfips) lags(15) leads(10) graph_op(ytitle("Suicides

> per 1m Women"));                     //设置keepbal选项

Note: with HDFE option do not include in varlist the categorical variables

that identify the fixed effects to be absorbed in absorb()

(MWFE estimator converged in 5 iterations)

warning: missing F statistic; dropped variables due to collinearity or too few clusters

具体回归结果如下:
鉴于我们现在只根据采用的时间(以及未采用的州)来限制某些州,滞后和领先项的估计将与前面讨论的完全饱和模型不同。在上述命令的输出中,我们观察到估计样本仅包含507个观察结果,以采用在指示的滞后/领先项中具有平衡的状态和不采用的州(与完整样本规范中的1617个观察结果相比)。相应的事件研究图在面板(c)中,我们注意到估计样本的相当大的变化(仅仅出于表达原因选择)产生了完全不同的结果。

处理标准化时间段内不平衡的另一种方法是规定,如公式2和公式5所示所有超过某些指定值的时间段都应累积为最终的滞后期和领先期。这是通过accum选项来实现的。当指定这一点时,面板事件研究将分别由lead(#)和lag(#)选项中显示的领先和滞后的数量来提供的,将这些时期之后的所有时期累积到最终的滞后和领先项。例如,如果我们指定lags(-15)和leads(10),则单个系数将捕获基期−15及更早的时期以及基期10及以后的时期。下面的语法说明了这一点,生成的图形输出显示在图2的面板(d)中。

. #delimit ;

delimiter now ;

. qui

> eventdd asmrs pcinc asmrh cases i.year, fe timevar(timeToTreat) ci(rcap)

> cluster(stfips) accum lags(15) leads(10) graph_op(ytitle("Suicides per 1m Women"));//设置accum选项

Note: with FE option do not include in varlist the categorical variables

that identify the individual fixed effect

. #delimit cr

delimiter now cr

这些作为对中间阶段以外所有时期的事件长期影响的滞后/领先期的估计会使得终点对额外的滞后和领先期有不同的解释,默认情况下,终点估计将以另一种颜色绘制。可以使用endpoints_op()选项来完全控制这种行为,允许将标记样式和颜色等选项传递到基准的散点图中(在本文的第4.3小节中提供了其他讨论)。或者,如下所述,可以调用noend选项,如面板(e)所示它将从图形输出中忽略这些最终的累积端点:

. #delimit ;

delimiter now ;

. qui

> eventdd asmrs pcinc asmrh cases i.year, fe timevar(timeToTreat) ci(rcap)

> cluster(stfips) accum lags(15) leads(10) noend graph_op( ytitle("Suicides per

> 1m Women"));                  //设置noend选项

Note: with FE option do not include in varlist the categorical variables that identify the individual fixed effect

. #delimit cr

delimiter now cr

最后,如第2节所述,除非另有说明,任何面板事件研究估计的参考期间将被假定为紧接在每个州的事件发生之前的期间。这可以简单地通过baseline(#)选项进行更改。虽然选择−1作为基线周期是任意的,但它经常被采用,因此替代的基线周期应该基于一些经验或理论的考虑,尽管这两个模型将相当于一个单一的不变位移。下面我们提供了一个替代基线周期的语法设置,所有的系数和标准误差都是指相对于感兴趣的事件发生前11年的差异。默认情况下,eventdd ado会在周期-1处放置一条垂直的参考线,以直观地表示事件通过之前的周期。但是,如果不需要这个参考线,则可以如图2f所示指定noline选项来设置。如果希望提供替代的参考周期,这些周期可以直接传递给图形命令。例如,要在周期0中添加一个替代引用行,此时可以通过指定graph_op(xline(0))来实现。

delimiter now ;

. qui

> eventdd asmrs pcinc asmrh cases i.year, fe timevar(timeToTreat) ci(rcap) noline

> baseline(-11) cluster(stfips) graph_op(ytitle("Suicides per 1m Women") //改变基期

> xlabel(-20(5)25));

Note: with FE option do not include in varlist the categorical variables

that identify the individual fixed effect

. #delimit cr

delimiter now cr

4.2 Inference Options 推断选项
前面的小节描述了一些替代的估计程序,这些程序可能与面板事件研究设计的估计相关。然而,正如在本文的第2节中所讨论的,在实现面板事件研究模型时,必须考虑到许多影响推断的因素。在此之前,该命令一直使用cluster(stfips)来实现,这表明应该估计一个CRVE,其中聚类是基于州的层面——在这种情况下分配事件的层级。正如在第2.2节中所讨论的,在本例中,基于49个州的聚类,一个CRVE很可能是该模型的适当推理模式。
然而,eventdd命令允许通过与boottest的交互,使用野聚类自助法作为后估计程序(post-estimation procedure)(前提是该命令安装在用户的系统上)进行推断。这由wboot选项表示,默认情况下,该选项假设需要野聚类自助法,cluster()中表示聚类变量。当面板中很少有聚类时,这一点特别有用。但是,请注意,考虑到这个过程是基于自助重采样(bootstrap resampling)的,推断过程可能比基于Stata的原生CRVE的推理需要更长的时间。此外,wboot选项不能与hdfe估计选项相结合。然而,boottest还提供了相当多的其他好处,包括选择使用双向聚类进行推断(inference with two way clustering),这在很少有聚类的情况下可能显示出更好的规模属性(size properties)(Mackinnon and Webb 2018)。任何应该直接传递给boottest的选项都可以在wboot_op()选项中指定,如下面的seed选项所示。如果需要,可以确保在伪随机自助重采样(pseudo-random bootstrap resamples)中的可复制性。图3对比了之前基于CRVE的推理过程与这里所示的野聚类自助法推断过程之间的差异。

. #delimit ;

delimiter now ;

. qui

> eventdd asmrs pcinc asmrh cases i.year, fe timevar(timeToTreat) ci(rcap)

> cluster(stfips) accum lags(10) leads(10) wboot wboot_op(seed(1303)) graph_op(ytitle(

> "Suicides per 1m Women"));            //设置野聚类自助法进行推断

Note: with FE option do not include in varlist the categorical variables

that identify the individual fixed effect

. #delimit cr

delimiter now cr

最后,请注意,作为标准eventdd命令的输出、返回的对象以及结果图和图例中提供了95%的置信区间。level()选项允许指示其他置信水平,例如,下面要求90%置位水平的CIs。图形输出仅在所提供的置信区间上有所不同(图5(a)和(b))。


4.3 Altering Standard Appearance 改变标准外观

eventdd命令允许使用Stata中的twoway graph来可视化多种形式的置信区间。该命令要求用户通过指定ci(rarea)来指定带有区域阴影的间隔,ci(rcap)表示带有上限峰值的间隔,ci(rline)表示带线的间隔。图5显示了图1中的初始事件研究,但是现在有了三种可选类型的图。用户必须指定一种类型,并且这将适用于所有显示的时间间隔。

Figure 5: Alternative Visualization Options for Event Study Confidence Intervals
可以使用ci_op()选项来完全控制这些图形类型,尽管所包含的选项必须与所请求的置信区间的实际类型相兼容。选项的兼容性可以在Stata的帮助文件中确认为每个可接受的ci()选项的两个两个选项。类似地,我们可以使用coef_op()选项指定图中系数的绘图所需的任何选项,如果我们将周期累积到最终点,我们可以在endpoints_op()中为这些点指定绘图选项。在这两种情况下,它们都接受Stata的双散点图类型的任何有效选项。最后,graph_op()选项允许包含任何通用的图形选项,如替代标签方案、图形方案或标题选项。在图6中,我们利用Stata的透明度选项和替代配色方案,比较了标准输出(左)和替代输出(右)。下面提供了用于生成图7(b)的eventdd语法,然后是结果输出。

Figure 6: Event study plots No-fault Divorce Reforms: Appearance options

. #delimit ;

delimiter now ;

. qui

> eventdd asmrs pcinc asmrh cases i.year, fe timevar(timeToTreat) ci(rarea)//设置图形形状

> cluster(stfips) accum lags(15) leads(20) graph_op(xlabel(-15 "{&le} -15"

> -10 "-10" -5 "-5" 0 "0" 5 "5" 10 "10" 15 "15" 20 "{&ge} 20") scheme(s1mono)

> ytitle("Suicides per 1m Women")) ci_op(fcolor(ltblue%45)) coef_op(msymbol(Oh))

> endpoints_op(msymbol(O));

Note: with FE option do not include in varlist the categorical variables

that identify the individual fixed effect

. #delimit cr

delimiter now cr

5 Conclusions 结论
面板事件研究是应用研究人员工具箱中越来越常用的工具。当人们希望考虑发生在不同地理区域(潜在的)不同时间发生的某些事件的影响时,它允许在准实验(观测)环境中清楚地呈现估计的影响。更重要的是,本文提供的讨论和例子是围绕地理聚类的事件(如离婚改革的应用研究Stevenson and Wolfers (2006),并应用于演示其他双向固定效应方法(Goodman-Bacon 2018),这种设置也可以适用于在其他维度中有一些感兴趣事件的时间到达,如年龄或其他人口统计群体。
在本文中,我们讨论了正不断增长文献中面板事件研究的设计,并介绍了一个灵活的eventdd命令,该命令允许他们在Stata中进行估计和可视化。我们介绍了一些估计和推断问题,并展示了该命令如何在应用设置中简单地处理这些问题。虽然eventdd可以基于Stata内置的regress、xtreg和聚类稳健方差-协方差估计(cluster robust variance-covariance estimators)进行估计,它也能够与许多非常强大的用户编写的命令进行交互,如允许扩展高维固定效应方程(high-dimensional fixed effects equations)的有效估计,和使用野聚类自助法进行推断。

关于DID的最新进展,参看:1.120篇DID双重差分方法的文章合集, 包括代码,程序及解读, 建议收藏!2.诚实双重差分法DID, 面板事件研究法和Bacon分解的经典应用文!3.前沿: 多期或渐进或交叠DID, 如何进行平行趋势检验呢?4.多期DID或渐进DID或交叠DID, 最新Stata执行命令整理如下供大家学习,5.DID前沿: 5种方法估计事件研究的因果效应, 并使用绘制系数和置信区间, 详细代码和数据,6.事件研究法开展政策评估和因果识别, 分享8篇提供数据和代码的文章,7.推荐用渐进(多期)DID和事件研究法开展政策评估的论文及其实现数据和代码!8.机器学习已经与政策评估方法, 例如事件研究法结合起来识别政策因果效应了!9.多期DID前沿方法大讨论, e.g., 进入-退出型DID, 异质性和动态性处理效应DID, 基期选择问题等,10.面板数据政策评估方法(DID等)的最新进展与相关应用, 包括机器学习和因子估计法,11.AEJ上首篇用DID研究晚清电报与粮食价格关系的量化史文章! 通电报, 粮价稳!12.前沿, 合成双重差分法SDID方法介绍和示例, 附code和数据!13.前沿, 模糊双重差分法FDID方法介绍和示例, 附code和数据!

关于双重差分方法DID,可以参看: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方法结合起来

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

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

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

Econometrics Circle




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

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

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