不可不知的2个实用DID双重差分模型中平行趋势图命令(含论文视频讲解(含eventdd应用)
Eviews+Stata:Bacon分解经典案例--单边离婚改革
本文代码汇总为:
1、针对TWFE中存在偏误进行Bacon分解
我们使用Stevenson and Wolfers (2006)关于美国无过错离婚改革和女性自杀的数据。这些数据已在其他论文中使用,以证明双向固定效应模型最近进展的功能(见Goodman-Bacon(2018)),并取自在Stata中使用时用于记录此类方法的示例(Goodman -Bacon et al. 2019) 数据由一个平衡面板组成,包括1964年至1996年对49个州的观察,这些州的单方面离婚改革时间不同。所使用的无过错离婚改革中女性自杀的基线双向固定效应DID模型为:
其中
asmrs为t时刻s状态下所有女性的自杀率 γ为状态固定效应,λ为时间(年)固定效应 post为实施无过错离婚改革后的值1 ε为随机误差。 协变量包括四口之家的人均收入(pcinc)、他杀死亡率(asmrh)和对有受抚养子女家庭的援助(AFDC)率(病例)。
下面进行Bacon分解,主要可以使用bacondecomp命令进行相关操作。
首先估计无过错离婚影响的TWFEDD模型
xtreg asmrs post pcinc asmrh cases i.year, fe robust
使用Bacon分解命令代码为
bacondecomp asmrs post pcinc asmrh cases, stub(Bacon_) robust
bacondecomp asmrs post pcinc asmrh cases, ddetail
也可以使用ddtiming命令进行分解,这里我们换一个面板数据分析模型进行估计:
areg asmrs post i.year, a(stfips ) vce(robust)
将Goodman-Bacon(2018)中的DD分解定理应用于双向固定效应DD模型:
ddtiming asmrs post , i(stfips ) t(year)
Stata 将生成 DD 估计值、相关权重和估计值的散点图。散点图复制了Goodman-Bacon (2021) 中的图 (6)。此外,我们可以在命令中添加选项来修改散点图的外观:
ddtiming asmrs post, i(stfips ) t(year) ddline(lwidth(thick)) ///
ylabel(-30(10)30) legend(order(3 4 1 2)) savegraph(nfd.jpg) ///
savedata(nfd) replace
2、eventdd事件研究分析操作
许多研究使用面板事件研究设计来估计暴露于某些准实验性政策或事件的影响。这些模型,作为“差值(差值)”或双向固定效应模型的广义扩展,允许动态滞后,并导致估计感兴趣的事件,同时还控制固定因素(通常)按区域和时间。在本文中,我们讨论了在一系列情况下设置面板事件研究设计,并为其估计列出了一些实际考虑因素。我们描述了一个Stata命令eventdd,它允许在一系列情况下对事件研究模型进行简单的估计、推断和可视化。然后,我们提供了许多示例来说明eventdd的用法和灵活性。
面板事件研究可以在Stata中使用以下命令语法实现:
eventdd depvar [indepvars] [if] [in] [weight], timevar(varname) [options]
所需的变量表应首先指定感兴趣的因变量,然后是包括固定效应在内的所有控制变量,将其包括在面板事件研究模型中,但不包括滞后和领先,应在回归中输入。
方法选项指定底层模型的估计过程,可以是ols(普通最小二乘)、fe(固定效果)或reghdfe(使用用户编写的reghdfe命令吸收多个固定效果级别)。如果未指定估计方法,则默认使用ols。
在固定效果(fe)或高维固定效果(reghdfe)模型的情况下,固定效果可以被吸收(如下面的选项中讨论),因此不需要在标准varlist语法中输入。在fe的情况下,数据必须首先是Stata中的xtset。基于这种语法,eventdd负责生成所有滞后项和先导项、估计和推断,以及生成事件研究图。
选项含义:
Timevar是必需选项。指定的时间变量应该包含一个标准化的值,其中0对应于给定单位中感兴趣的事件发生的时间段,−1表示事件发生前一年,1表示事件发生后一年,以此类推。对于事件未发生的任何单元(纯控件),此变量应包含缺失值。 ci(string)是必需的选项,指示命令将生成的图形类型。可用于置信区间的图形类型是rarea(带区域阴影的区间),rcap(带上限峰值的区间)和rline(带直线的区间)。只能指定一种类型,并且所有间隔都是相同的类型。外观可以使用ci_op()进行修改。 baseline(#)指定事件研究的参考周期,这是一个被忽略的基线类别,所有其他周期都应该在事件研究输出上与之进行比较。缺省情况下,该值设置为−1。 level(#)为置信区间指定置信级别,以百分比表示。默认值是level(95)或根据set level设置。这设置了回归输出中置信区间的水平,以及事件研究图和矩阵。 method(type, [absorb(absvars)] * ...)指定估计方法:ols(使用Stata的regress 命令)、fe(使用Stata的xtreg、fe命令)或hdfe(使用用户编写的reghdfe命令),以及任何额外的估计选项和vce选项传递到事件研究模型(如robust 或 clustered估计)。absorb(absvars)子选项只在hdfe选项时需要。ols是默认的估计方法。
eventdd在e()中存储了以下内容:
Scalars
e(baseline) baseline period specified
e(level) confidence level
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()
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_leads_lags) variance-covariance matrix of leads and lags estimators
为了估计出与无过错离婚改革相对应的面板事件研究规范,第一步是创建标准化版本的改革时间变量,假设数据中还没有这样一个变量。特别是在这种情况下,在Stata中创建变量只需要从时间周期t(在数据中称为year)中减去改革周期,称为Events(以及_nfd,在数据中表示“无过错离婚”):
webuse set 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)
eventdd命令提供了一个简单的语法,用于生成所有必要的滞后和领先,估计事件研究模型,以及图点估计和置信区间。该命令需要两个选项:timevar(timeToTreat)中的标准化变量,以及置信区间图的类型,例如,我们指定ci(rcap)用于由上限错误条表示的区间。下面我们要求命令安静地运行(qui),但是在本节后面我们记录了一个示例,其中显示完整的回归输出:
gen timeToTreat = year - _nfd
(429 missing values generated)
.
. do "C:\Users\Metrics\AppData\Local\Temp\STD1a40_000000.tmp"
. #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
#delimit ;
delimiter now ;
. 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));
Linear regression Number of obs = 1,617
F(47, 48) = .
Prob > F = .
R-squared = 0.7212
Root MSE = 10.808
(Std. Err. adjusted for 49 clusters in stfips)
------------------------------------------------------------------------------
| Robust
asmrs | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
pcinc | -.0011046 .0004136 -2.67 0.010 -.0019363 -.000273
asmrh | 1.08064 .6064578 1.78 0.081 -.1387247 2.300006
cases | -190.3716 136.6556 -1.39 0.170 -465.136 84.39279
|
year |
1965 | 5.225278 2.119377 2.47 0.017 .9639841 9.486572
1966 | 2.803378 2.269053 1.24 0.223 -1.75886 7.365615
1967 | 4.61116 2.338898 1.97 0.054 -.0915108 9.31383
1968 | 5.596837 2.514211 2.23 0.031 .5416775 10.652
1969 | 8.574786 3.158377 2.71 0.009 2.224444 14.92513
1970 | 10.65894 3.821476 2.79 0.008 2.975344 18.34253
1971 | 17.6067 3.585572 4.91 0.000 10.39743 24.81598
1972 | 14.0683 4.136396 3.40 0.001 5.751524 22.38509
1973 | 16.16345 4.772027 3.39 0.001 6.568642 25.75825
1974 | 17.01009 4.575588 3.72 0.001 7.810252 26.20992
1975 | 20.48743 4.720196 4.34 0.000 10.99684 29.97802
1976 | 16.76032 5.32978 3.14 0.003 6.044076 27.47656
1977 | 18.8125 4.946074 3.80 0.000 8.867751 28.75725
1978 | 15.53648 5.404453 2.87 0.006 4.670103 26.40286
1979 | 13.97376 6.075092 2.30 0.026 1.758968 26.18855
1980 | 11.16642 5.34852 2.09 0.042 .4125048 21.92034
1981 | 13.86874 5.929315 2.34 0.024 1.947052 25.79043
1982 | 10.84654 5.143604 2.11 0.040 .5046313 21.18845
1983 | 10.26562 5.662058 1.81 0.076 -1.118707 21.64996
1984 | 13.14376 5.892586 2.23 0.030 1.295919 24.9916
1985 | 9.251855 6.348267 1.46 0.152 -3.51219 22.0159
1986 | 14.41652 6.246341 2.31 0.025 1.857413 26.97563
1987 | 15.65435 6.059627 2.58 0.013 3.470651 27.83805
1988 | 13.44858 6.610391 2.03 0.047 .1574946 26.73966
1989 | 12.80977 7.303105 1.75 0.086 -1.874109 27.49364
1990 | 14.06857 7.146289 1.97 0.055 -.3000028 28.43715
1991 | 13.22049 7.084524 1.87 0.068 -1.023902 27.46488
1992 | 12.87047 7.475258 1.72 0.092 -2.159543 27.90048
1993 | 15.34731 7.739088 1.98 0.053 -.2131671 30.90779
1994 | 15.13629 7.863552 1.92 0.060 -.6744393 30.94702
1995 | 13.79803 8.179808 1.69 0.098 -2.648576 30.24464
1996 | 13.98251 8.506622 1.64 0.107 -3.1212 31.08622
|
stfips |
4 | 36.9288 1.924405 19.19 0.000 33.05952 40.79807
5 | -4.461478 3.095326 -1.44 0.156 -10.68505 1.762091
6 | 60.38981 5.349018 11.29 0.000 49.63489 71.14473
8 | 50.05651 3.608116 13.87 0.000 42.80191 57.31111
9 | 17.08357 6.756787 2.53 0.015 3.498137 30.669
10 | 20.5695 5.507517 3.73 0.000 9.495893 31.64311
11 | 12.56921 7.996852 1.57 0.123 -3.50954 28.64796
12 | 35.74881 2.233152 16.01 0.000 31.25876 40.23887
13 | 13.61893 1.454427 9.36 0.000 10.69461 16.54325
16 | 18.44103 2.264297 8.14 0.000 13.88836 22.99371
17 | 11.29719 5.409254 2.09 0.042 .4211582 22.17323
18 | 10.4168 2.696812 3.86 0.000 4.994492 15.8391
19 | 10.28096 3.304845 3.11 0.003 3.636126 16.9258
20 | 15.3332 2.936976 5.22 0.000 9.42801 21.23838
21 | 11.01473 1.716834 6.42 0.000 7.562801 14.46665
22 | 6.137733 3.045236 2.02 0.049 .0148753 12.26059
23 | 16.7276 3.137669 5.33 0.000 10.41889 23.03631
24 | 12.89125 5.953918 2.17 0.035 .9200967 24.8624
25 | 12.10367 5.718826 2.12 0.040 .6052007 23.60214
26 | 21.57043 3.800149 5.68 0.000 13.92972 29.21114
27 | 13.77685 4.183384 3.29 0.002 5.365598 22.18811
28 | -5.819917 3.34078 -1.74 0.088 -12.53701 .8971724
29 | 15.73647 2.563135 6.14 0.000 10.58294 20.88999
30 | 24.89907 2.293199 10.86 0.000 20.28828 29.50985
31 | 7.785651 3.439078 2.26 0.028 .8709211 14.70038
32 | 78.63681 3.694747 21.28 0.000 71.20802 86.0656
33 | 20.4206 4.235537 4.82 0.000 11.90448 28.93672
34 | 6.52651 5.834313 1.12 0.269 -5.204163 18.25718
35 | 30.08897 1.257066 23.94 0.000 27.56147 32.61648
36 | 4.890387 6.564132 0.75 0.460 -8.307686 18.08846
37 | 3.285438 3.225977 1.02 0.314 -3.200823 9.771699
38 | -.5794964 3.058447 -0.19 0.851 -6.728916 5.569923
39 | 20.46251 3.613936 5.66 0.000 13.19621 27.72882
40 | 11.7639 3.582965 3.28 0.002 4.559865 18.96793
41 | 30.98784 3.101588 9.99 0.000 24.75168 37.224
42 | 11.86828 4.25983 2.79 0.008 3.30332 20.43325
44 | 15.73751 4.480252 3.51 0.001 6.729364 24.74567
45 | 4.63611 .4879704 9.50 0.000 3.65498 5.61724
46 | .1719819 3.504933 0.05 0.961 -6.875158 7.219122
47 | 5.709774 3.396845 1.68 0.099 -1.120042 12.53959
48 | 16.48494 1.94482 8.48 0.000 12.57461 20.39526
49 | 11.92987 4.052823 2.94 0.005 3.781118 20.07861
50 | 14.00645 4.839034 2.89 0.006 4.276916 23.73597
51 | 9.583616 4.912417 1.95 0.057 -.2934614 19.46069
53 | 35.6558 4.270496 8.35 0.000 27.06939 44.2422
54 | .321997 3.730593 0.09 0.932 -7.178863 7.822857
55 | 19.1378 3.921319 4.88 0.000 11.25346 27.02214
56 | 31.20661 3.447895 9.05 0.000 24.27415 38.13907
|
lead21 | -22.92073 4.075373 -5.62 0.000 -31.11481 -14.72664
lead20 | -12.08418 11.17267 -1.08 0.285 -34.54834 10.37998
lead19 | 8.842727 6.053351 1.46 0.151 -3.328351 21.01381
lead18 | -.5159513 4.753964 -0.11 0.914 -10.07444 9.042533
lead17 | -4.434874 6.310563 -0.70 0.486 -17.12311 8.253363
lead16 | -1.022577 3.651244 -0.28 0.781 -8.363896 6.318742
lead15 | .8477567 4.262787 0.20 0.843 -7.72315 9.418664
lead14 | 4.327995 5.301677 0.82 0.418 -6.33174 14.98773
lead13 | -1.388568 4.708948 -0.29 0.769 -10.85654 8.079407
lead12 | -.0434501 7.023583 -0.01 0.995 -14.16531 14.07841
lead11 | -9.381948 4.044052 -2.32 0.025 -17.51306 -1.250836
lead10 | -1.150666 5.011109 -0.23 0.819 -11.22618 8.924843
lead9 | -5.000702 3.645503 -1.37 0.177 -12.33048 2.329073
lead8 | -2.73765 3.965503 -0.69 0.493 -10.71083 5.235528
lead7 | -1.256434 4.40995 -0.28 0.777 -10.12323 7.610363
lead6 | -.7505582 3.038754 -0.25 0.806 -6.860382 5.359266
lead5 | -2.775423 2.662771 -1.04 0.302 -8.129282 2.578436
lead4 | .2283574 2.435786 0.09 0.926 -4.669119 5.125834
lead3 | -2.312587 3.017688 -0.77 0.447 -8.380055 3.754881
lead2 | -.5157397 2.555229 -0.20 0.841 -5.653371 4.621892
lag0 | .2507466 2.765789 0.09 0.928 -5.310244 5.811737
lag1 | -1.619351 2.988699 -0.54 0.590 -7.628534 4.389831
lag2 | -1.687107 3.960678 -0.43 0.672 -9.650584 6.27637
lag3 | -.7444709 2.908468 -0.26 0.799 -6.592338 5.103396
lag4 | -2.956354 2.878044 -1.03 0.309 -8.743049 2.830342
lag5 | -2.377841 2.798907 -0.85 0.400 -8.00542 3.249739
lag6 | -3.311888 3.625365 -0.91 0.366 -10.60117 3.977398
lag7 | -5.136502 3.45649 -1.49 0.144 -12.08624 1.813237
lag8 | -6.991146 3.135858 -2.23 0.031 -13.29621 -.6860805
lag9 | -4.82321 3.139015 -1.54 0.131 -11.13462 1.488201
lag10 | -8.814158 3.733515 -2.36 0.022 -16.32089 -1.307423
lag11 | -7.27331 3.689987 -1.97 0.054 -14.69253 .1459062
lag12 | -6.151559 4.15508 -1.48 0.145 -14.50591 2.202789
lag13 | -8.276837 4.00952 -2.06 0.044 -16.33852 -.2151567
lag14 | -6.593221 3.929278 -1.68 0.100 -14.49356 1.307121
lag15 | -7.850839 4.136105 -1.90 0.064 -16.16703 .465356
lag16 | -7.234422 4.339311 -1.67 0.102 -15.95919 1.490348
lag17 | -8.516898 4.413931 -1.93 0.060 -17.3917 .3579043
lag18 | -9.991582 3.819046 -2.62 0.012 -17.67029 -2.312876
lag19 | -11.53613 3.923685 -2.94 0.005 -19.42523 -3.647036
lag20 | -9.219165 4.574047 -2.02 0.049 -18.4159 -.0224257
lag21 | -10.79088 4.488696 -2.40 0.020 -19.81601 -1.765756
lag22 | -10.65478 4.682235 -2.28 0.027 -20.06905 -1.240518
lag23 | -12.08658 5.376989 -2.25 0.029 -22.89774 -1.275415
lag24 | -10.67796 6.246086 -1.71 0.094 -23.23655 1.880642
lag25 | -10.26777 7.578635 -1.35 0.182 -25.50564 4.970098
lag26 | -16.69255 10.71136 -1.56 0.126 -38.22919 4.844089
lag27 | -.4344752 8.27773 -0.05 0.958 -17.07797 16.20902
_cons | 56.23195 5.941966 9.46 0.000 44.28483 68.17908
------------------------------------------------------------------------------
. #delimit cr
delimiter now cr
.
end of do-file
该命令存储所有事件延迟、它们的下界、点估计和上界。例如,如果我们希望可视化整个滞后集的估计,以及它们的上置信区间和下置信区间,我们可以简单地检查返回的滞后矩阵:
. mat list e(lags)
e(lags)[28,4]
Lag LB Est UB
r1 0 -5.3102441 .25074664 5.8117375
r2 1 -7.6285343 -1.6193515 4.3898311
r3 2 -9.6505833 -1.6871067 6.27637
r4 3 -6.5923381 -.74447083 5.1033964
r5 4 -8.7430496 -2.9563539 2.8303416
r6 5 -8.0054207 -2.3778408 3.2497389
r7 6 -10.601172 -3.3118875 3.9773974
r8 7 -12.086242 -5.1365023 1.813237
r9 8 -13.296212 -6.9911461 -.68608052
r10 9 -11.134622 -4.8232102 1.4882015
r11 10 -16.320892 -8.8141575 -1.3074229
r12 11 -14.692526 -7.2733097 .14590624
r13 12 -14.505907 -6.1515589 2.2027895
r14 13 -16.338516 -8.2768364 -.21515673
r15 14 -14.493564 -6.5932212 1.3071214
r16 15 -16.167034 -7.8508396 .46535599
r17 16 -15.959191 -7.2344217 1.4903481
r18 17 -17.391701 -8.5168982 .35790426
r19 18 -17.670288 -9.9915819 -2.312876
r20 19 -19.42523 -11.536133 -3.6470358
r21 20 -18.415903 -9.2191648 -.02242574
r22 21 -19.816011 -10.790884 -1.7657557
r23 22 -20.069046 -10.654782 -1.240518
r24 23 -22.897739 -12.086576 -1.2754151
r25 24 -23.236555 -10.677957 1.8806419
r26 25 -25.505636 -10.267769 4.9700985
r27 26 -38.229191 -16.692551 4.8440886
r28 27 -17.077967 -.43447518 16.209017
检验领先和滞后的联合显著性。
. estat eventdd
使用野蛮自举法检验领先和滞后的联合显著性。
estat eventdd, wboot seed(1303)
结果为:
. estat eventdd
Joint significance test for
leads and lags
----------------------------------------
LEADS
----------------------------------------
F-stat: 31.1251
P-value: 0.0000
Degrees of freedom (20,48)
----------------------------------------
LAGS
----------------------------------------
F-stat: 4.0011
P-value: 0.0000
Degrees of freedom (28,48)
----------------------------------------
3、permute进行安慰剂检验
参考资料:
下面我们使用permute命令进行安慰剂检验,虽然是一行代码进行随机抽样500/1000次,但是其实是两行,首先进行估计,然后进行绘图:
估计保存DID结果命令为:
permute post coefficient = _b[DID], reps(500) seed(100) saving("数量经济学.dta"): xtreg asmrs post i.year, fe r
结果为:
permute post coefficient = _b[post], reps(500) seed(100) saving("数量经济学.dta"): xtreg asmrs post i.year, fe r
(running xtreg on estimation sample)
Permutation replications (500)
----+--- 1 ---+--- 2 ---+--- 3 ---+--- 4 ---+--- 5
.................................................. 50
.................................................. 100
.................................................. 150
.................................................. 200
.................................................. 250
.................................................. 300
.................................................. 350
.................................................. 400
.................................................. 450
.................................................. 500
Monte Carlo permutation results Number of obs = 1,617
command: xtreg asmrs post i.year, fe r
coefficient: _b[post]
permute var: post
------------------------------------------------------------------------------
T | T(obs) c n p=c/n SE(p) [95% Conf. Interval]
-------------+----------------------------------------------------------------
coefficient | -3.079926 0 500 0.0000 0.0000 0 .0073506
------------------------------------------------------------------------------
Note: Confidence interval is with respect to p=c/n.
Note: c = #{|T| >= |T(obs)|}
.
然后进行绘图,命令为:
**绘图
use "数量经济学.dta", clear
#delimit ;
dpplot coefficient, xline(-2.515, lc(red*0.5) lp(dash)) xline(0, lc(black*0.5) lp(solid))
xtitle("Estimator",size(*0.8))
xlabel(-3(1)2)
ytitle("Density", size(*0.8))
ylabel(, nogrid format(%4.1f) labsize(small))
note("") caption("") ;
#delimit cr