Stata:双重差分的固定效应模型-(DID)

发布时间:2020-10-09 阅读 38990

Stata 连享会   主页 || 视频 || 推文

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

课程详情 https://gitee.com/arlionn/Course   |   lianxh.cn

课程主页 https://gitee.com/arlionn/Course


作者:张伟广  


目录


双重差分法(DID)作为估计处理效应的工具方法,常被用来对政策实施的跨期效果进行评估,其本身也是一种固定效应估计方法。在不同应用情形下,该方法具有多种可供选择的回归命令,而由于有些应用者对双重差分模型设定的优点和缺陷,以及 stata 命令实现不够了解,使得该方法有被错误滥用的倾向。

在此借鉴参考 Using Stata to estimate difference-in-differences models with fixed effects by Nicholas Poggioli (poggi005@umn.edu) ,举例从混合回归、 areg 回归、面板回归的随机效应和固定效应等情形,给出正确和错误模型设定的对比,以期为双重差分模型估计命令的正确选择作参考。

简要回顾双重差分模型的设定形式:

模型(1)为双重差分模型的基本设定。其中,Gi 为分组虚拟变量(处理组=1,控制组=0); Dt 为分期虚拟变量(政策实施后=1,政策实施前=0);交互项 Gi×Dt 表示处理组在政策实施后的效应,其系数即为双重差分模型重点考察的处理效应。

模型(2)是加入个体固定效应 (ui)、时间固定效应 (λt),以及其它控制变量 (Xit) 的双重差分模型设定的一般形式。

下面,我们通过一份模拟数据来对比分析不同估计方法的效果和偏误。

1. 生成数据

  • 生成企业数量
set obs 400
gen firm=_n
  • 时间跨度设定为24个季度(6年)
expand 24
bysort firm: gen t=_n
  • 设定事件冲击发生在第14期
gen d=(t>=14)
label var d "=1 if post-treatment"
  • 设定处理组和对照组
gen r=rnormal()
qui sum r, d
bysort firm: gen i=(r>=r(p50)) if _n==1
bysort firm: replace i=i[_n-1] if i==. & _n!=1
drop r
label var i "=1 if treated group, =0 if untreated group"
  • 设定随机变量
gen e = rnormal()
label var e "normal random variable"

2. 验证模型

处理效应设定交互项系数为 0.56

gen y = 0.3 + 0.19*i + 1.67*d + 0.56*i*d + e

2.1 混合回归 (POLS)

错误设定模型

. reg y i d

      Source |       SS       df       MS              Number of obs =    9600
-----------+------------------------------           F(  2,  9597) = 4406.07
       Model |  9073.16808     2  4536.58404           Prob > F      =  0.0000
    Residual |  9881.26843  9597  1.02962055           R-squared     =  0.4787
-----------+------------------------------           Adj R-squared =  0.4786
       Total |  18954.4365  9599  1.97462616           Root MSE      =  1.0147

----------------------------------------------------------------------------
           y |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-----------+----------------------------------------------------------------
           i |   .4349154   .0208277    20.88   0.000     .3940888     .475742
           d |   1.902249   .0207848    91.52   0.000     1.861506    1.942991
       _cons |    .192176   .0168782    11.39   0.000     .1590912    .2252609
----------------------------------------------------------------------------

这一设定忽略了交互项,此时 id 的 OLS 的估计都是有偏估计。即使考虑异方差稳健性标准误或在企业层面进行聚类调整后的标准误,也不会改变其有偏性。因此,使用 reg y i d, robustreg y i d, vce(cluster firm) 是无济于事的。

正确设定模型

. reg y i d  i.i#i.d
. eststo pooled

----------------------------------------------------------------------------
           y |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-----------+----------------------------------------------------------------
           i |    .174383   .0280267     6.22   0.000     .1194448    .2293213
           d |   1.647874   .0276935    59.50   0.000     1.593589    1.702159
         i#d |
        1 1  |   .5684342   .0413982    13.73   0.000     .4872851    .6495834
       _cons |   .3087643   .0187486    16.47   0.000     .2720131    .3455154
----------------------------------------------------------------------------

此时对交互项的估计、对 id 的估计都是接近参数的真实值的。

Stata连享会 专题课程 || 精彩推文

2.2 areg 回归

. areg y i d i.i#i.d, absorb(firm)
. eststo areg

----------------------------------------------------------------------------
           y |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-----------+----------------------------------------------------------------
           i |          0  (omitted)
           d |   1.647874   .0276586    59.58   0.000     1.593657    1.702091
         i#d |
        1 1  |   .5684342    .041346    13.75   0.000     .4873869    .6494815
       _cons |   .3868007   .0139183    27.79   0.000     .3595177    .4140837
-----------+----------------------------------------------------------------
        firm |      F(399, 9198) =      1.156   0.019         (400 categories)

连享会计量方法专题……

2.3 面板回归

. xtset firm t, quarter

错误设定模型

. xtreg y i d

----------------------------------------------------------------------------
           y |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-----------+----------------------------------------------------------------
           i |   .4349154   .0212192    20.50   0.000     .3933266    .4765042
           d |   1.902249   .0207677    91.60   0.000     1.861545    1.942953
       _cons |    .192176   .0170907    11.24   0.000     .1586789    .2256731
-----------+----------------------------------------------------------------
     sigma_u |  .04121238
     sigma_e |  1.0138689
         rho |  .00164959   (fraction of variance due to u_i)
-----------------------------------------------------------------------------
. xtreg y i d, fe

----------------------------------------------------------------------------
           y |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-----------+----------------------------------------------------------------
           i |          0  (omitted)
           d |   1.902249   .0207677    91.60   0.000     1.861539    1.942958
       _cons |   .3868007   .0140598    27.51   0.000     .3592403    .4143611
-----------+----------------------------------------------------------------
     sigma_u |  .30216053
     sigma_e |  1.0138689
         rho |  .08157474   (fraction of variance due to u_i)
------------------------------------------------------------------------------

此时 i 不能被估计,因为在面板数据中的企业代码是不随时间变化的。更为核心的问题在于:没有包含交乘项!

正确设定模型——随机效应 (RE)

. xtreg y i d i.i#i.d
. eststo xtreg_re

------------------------------------------------------------------------
       y |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------+----------------------------------------------------------------
       i |    .174383   .0284493     6.13   0.000     .1186234    .2301427
       d |   1.647874   .0276586    59.58   0.000     1.593664    1.702084
     i#d |
    1 1  |   .5684342    .041346    13.75   0.000     .4873976    .6494709
   _cons |   .3087643   .0190313    16.22   0.000     .2714636    .3460649
-------+----------------------------------------------------------------
 sigma_u |  .05056003
 sigma_e |   1.003664
     rho |  .00253126   (fraction of variance due to u_i)
------------------------------------------------------------------------

该随机效应模型与正确设定的混合回归模型产生了一致的估计结果。

正确设定模型——固定效应 (FE)

. xtreg y i d i.i#i.d, fe
. eststo xtreg_fe

------------------------------------------------------------------------
       y |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------+----------------------------------------------------------------
       i |          0  (omitted)
       d |   1.647874   .0276586    59.58   0.000     1.593657    1.702091
     i#d |
    1 1  |   .5684342    .041346    13.75   0.000     .4873869    .6494815
   _cons |   .3868007   .0139183    27.79   0.000     .3595177    .4140837
-------+----------------------------------------------------------------
 sigma_u |  .22793566
 sigma_e |   1.003664
     rho |   .0490464   (fraction of variance due to u_i)
------------------------------------------------------------------------
F test that all u_i=0:     F(399, 9198) =     1.16           Prob > F = 0.0194

该固定效应模型对交互项和变量 d 的估计结果一致,但对变量 i 的估计则被忽略,因为其并不随面板代码而发生变化;

随机效应模型能够估计出变量 i ,因为该模型能够包含企业变化,且 i 也随企业发生变化。

2.4 结果输出对比

estout *, title("Actual parameter values are i = .19, d = 1.67, and i*d = .56") ///
	cells(b(star fmt(%9.3f)) se(par))   ///
	stats(N N_g, fmt(%9.0f %9.0g) label(N Groups))      	///
    legend collabels(none) varlabels(_cons Constant) keep(i d 1.i#1.d)
--------------------------------------------------------------------
           pooled            areg        xtreg_re        xtreg_fe   
--------------------------------------------------------------------
i           0.174***        0.000           0.174***        0.000   
          (0.028)             (.)         (0.028)             (.)   
d           1.648***        1.648***        1.648***        1.648***
          (0.028)         (0.028)         (0.028)         (0.028)   
1.i#1.d     0.568***        0.568***        0.568***        0.568***
          (0.041)         (0.041)         (0.041)         (0.041)   
--------------------------------------------------------------------
N            9600            9600            9600            9600   
Groups                                        400             400   
--------------------------------------------------------------------
* p<0.05, ** p<0.01, *** p<0.001

相关课程

连享会-直播课 上线了!
http://lianxh.duanshu.com

免费公开课:


课程一览

支持回看,所有课程可以随时购买观看。

专题 嘉宾 直播/回看视频
最新专题 DSGE, 因果推断, 空间计量等
Stata数据清洗 游万海 直播, 2 小时,已上线
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]

Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。


关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。直播间 有很多视频课程,可以随时观看。
  • 连享会-主页知乎专栏,300+ 推文,实证分析不再抓狂。
  • 公众号推文分类: 计量专题 | 分类推文 | 资源工具。推文分成 内生性 | 空间计量 | 时序面板 | 结果输出 | 交乘调节 五类,主流方法介绍一目了然:DID, RDD, IV, GMM, FE, Probit 等。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会主页  lianxh.cn
连享会主页 lianxh.cn

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会学习群-常见问题解答汇总:
https://gitee.com/arlionn/WD