双重差分法(DID
)作为估计处理效应的工具方法,常被用来对政策实施的跨期效果进行评估,其本身也是一种固定效应估计方法。在不同应用情形下,该方法具有多种可供选择的回归命令,而由于有些应用者对双重差分模型设定的优点和缺陷,以及 stata
命令实现不够了解,使得该方法有被错误滥用的倾向。
在此借鉴参考 Using Stata to estimate difference-in-differences models with fixed effects by Nicholas Poggioli (poggi005@umn.edu)
,举例从混合回归、 areg
回归、面板回归的随机效应和固定效应等情形,给出正确和错误模型设定的对比,以期为双重差分模型估计命令的正确选择作参考。
简要回顾双重差分模型的设定形式:
DID模型设定 1
模型(1)为双重差分模型的基本设定。其中, Gi
为分组虚拟变量(处理组=1,控制组=0); Dt
为分期虚拟变量(政策实施后=1,政策实施前=0);交互项 Gi*Dt
表示处理组在政策实施后的效应,其系数即为双重差分模型重点考察的处理效应。
DID模型设定 2
模型(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 = .3 + .19*i + 1.67*d + .56*i*d + e
2.1 混合回归
- 错误设定模型
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
----------------------------------------------------------------------------
这一设定忽略了交互项,对
i
和d
的估计验证有偏。
reg y i d, robust
----------------------------------------------------------------------------
| Robust
y | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-----------+----------------------------------------------------------------
i | .4349154 .0208446 20.86 0.000 .3940555 .4757753
d | 1.902249 .0207964 91.47 0.000 1.861483 1.943014
_cons | .192176 .0168581 11.40 0.000 .1591307 .2252214
----------------------------------------------------------------------------
reg y i d, cluster(firm)
----------------------------------------------------------------------------
| Robust
y | Coef. Std. Err. t P>|t| [95% Conf. Interval]
---------+----------------------------------------------------------------
i | .4349154 .0211226 20.59 0.000 .3933899 .4764408
d | 1.902249 .0239605 79.39 0.000 1.855144 1.949353
_cons | .192176 .0181038 10.62 0.000 .1565853 .2277668
----------------------------------------------------------------------------
稳健标准差和对企业聚类方法对有偏估计并没有矫正。
- 正确设定模型
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
1.i | 0 (omitted)
1.d | 0 (omitted)
|
i#d |
1 1 | .5684342 .0413982 13.73 0.000 .4872851 .6495834
|
_cons | .3087643 .0187486 16.47 0.000 .2720131 .3455154
----------------------------------------------------------------------------
此时对交互项的估计、对
i
和d
的估计都是接近参数的真实值的。
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
1.i | 0 (omitted)
1.d | 0 (omitted)
|
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
不能被估计,因为在面板数据中的企业代码是不随时间变化的。
xtreg y i d, fe robust
----------------------------------------------------------------------------
| Robust
y | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-----------+----------------------------------------------------------------
i | 0 (omitted)
d | 1.902249 .0239592 79.40 0.000 1.855146 1.949351
_cons | .3868007 .0109813 35.22 0.000 .3652122 .4083891
-----------+----------------------------------------------------------------
sigma_u | .30216053
sigma_e | 1.0138689
rho | .08157474 (fraction of variance due to u_i)
----------------------------------------------------------------------------
- 正确设定模型——随机效应
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
1.i | 0 (omitted)
1.d | 0 (omitted)
|
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)
----------------------------------------------------------------------------
该随机效应模型与正确设定的混合回归模型产生一致的估计结果。
- 正确设定模型——固定效应
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
1.i | 0 (omitted)
1.d | 0 (omitted)
|
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
关于我们
- 【Stata 连享会(公众号:StataChina)】由中山大学连玉君老师团队创办,旨在定期与大家分享 Stata 应用的各种经验和技巧。
- 公众号推文同步发布于 【简书-Stata连享会】 和 【知乎-连玉君Stata专栏】。可以在简书和知乎中搜索关键词
Stata
或Stata连享会
后关注我们。 - 推文中的相关数据和程序,以及 Markdown 格式原文 可以在 【Stata连享会-码云】 中获取。【Stata连享会-码云】 中还放置了诸多 Stata 资源和程序。如 Stata命令导航 || stata-fundamentals || Propensity-score-matching-in-stata || Stata-Training 等。
联系我们
-
欢迎赐稿: 欢迎将您的文章或笔记投稿至
Stata连享会(公众号: StataChina)
,我们会保留您的署名;录用稿件达五篇
以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。 - 意见和资料: 欢迎您的宝贵意见,您也可以来信索取推文中提及的程序和数据。
- 招募英才: 欢迎加入我们的团队,一起学习 Stata。合作编辑或撰写稿件五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
- 联系邮件: StataChina@163.com
连玉君Stata现场班报名中
Stata连享会二维码
网友评论