Stata:交叠DID进行培根分解、事件研究、安慰剂检验案例

学术   教育   2024-11-12 00:00   陕西  

不可不知的2个实用DID双重差分模型中平行趋势图命令(含论文视频讲解(含eventdd应用)

事件研究命令: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




数量经济学
见证计量经济学发展,更懂计量更懂你!
 最新文章