Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
,ihelp
,rdbalance
,gitee
,installpkg
⛳ Stata 系列推文:
作者:胡文涛 (中国人民大学)
邮箱:hwtxwhr@163.com
编者按:本文主要摘译自下文,特此致谢!
Source:Gardner, John. 2021. Two-Stage Difference-in-Differences. Working Paper. -PDF-
目录
最近一系列文献都表明,当处理组个体接受处理的时间是交错的,而且平均处理效应随着组别以及时间发生变化时,常见的双重差分估计就不能识别一个典型处理效应并做出合理的度量 (Borusyak and Jaravel, 2017; Athey and Imbens, 2018; Goodman-Bacon, 2018; de Chaisemartin and D’Haultfoeuille, 2020; Imai andKim, 2020; Sun and Abraham, 2020)。
为此,本文将介绍可能缓解上述问题的方法——两阶段双重差分。具体地,本篇推文主要分为以下内容:
did2s
命令。
考虑一个常见的DID模型,如下列式子:
其中,
考虑一个只有两期的 DID,运用 DID 方法的一个前提是满足平行趋势假设,即处理组与对照组在处理前要具有共同的时间趋势变化。在处理之前处理组和对照组之间的差异可以分为固定的组别差异以及相同的时间趋势变化 (
但是,如果是交错 DID (或称为渐进、多时点 DID, staggered DID) 常见的双重差分估计就不能识别一个典型处理效应并做出容易解释的度量。从上式的一个直观理解是,如果是交错 DID,那么
下面来具体看看交错 DID 的估计量,可用下式直观表示,具体可以参考 De Chaisemartin and D’Haultfoeuille (2020),以下简称为 DecDh(2020):
从上式可以直观看到,我们估计的交错 DID 系数是 ATE(
前面也提到了,两阶段双重差分的原理是先识别组别效应和时期效应,然后在第二阶段将其剔除后,再对处理变量进行回归。两阶段双重差分顾名思义将估计分为两个阶段:
第一阶段,估计一个无处理结果 (
可得,
第二阶段,从观察数据中消除组别效应与时期效应,所得余值与处理变量回归,如下式:
如果进一步考虑到处理的持续期
两阶段估计方法同样可以应用于事件法研究,方法原理是一样的,对于一个事件研究:
与一般的双重差分模型一样,第一阶段先估计
第二阶段的估计量
*其中y是结果变量,year是年份,id表示组,d表示处理状态
gmm (eq1: (y - {xb: i.year} - {xg: ibn.id})*(1-d)) ///
(eq2: y - {xb:} - {xg:} - {delta}*d), ///
instruments(eq1: i.year ibn.id) ///
instruments(eq2: d) winitial(identity) ///
onestep quickderivatives vce(cluster id)
did2s
命令是根据 Gardner and John (2021) 方法进行编写的。
*命令安装
net install did2s, from(http://fmwww.bc.edu/RePEc/bocode/d)
*命令语法
did2s depvar [if] [in] [weight], ///
first_stage(varlist) ///
treat_formula(varlist) ///
treat_var(varname) ///
cluster_var(varname}) ///
[nboot(50)]
depvar
:被解释变量;first_stage(varlist)
:第一阶段公式,包括用于估计 treat_formula(varlist)
:第二阶段公式,varlist
放入处理变量,这些处理变量可以是 0、1 表示处理与否的虚拟变量,也可以是事件研究中提前\滞后变量,或者是连续的处理变量;treat_var(varname)
:这个必须设定为 0、1 类型的处理变量。其中 0 表示没有接受处理,1 表示接受处理;cluster_var(varname})
:为 bootstrap 产生的样本选择聚类变量,如果不想聚类的话,可以直接填入 id;nboot(real)
:可以设置 bootstrap 抽样次数,默认 50 次。下面,我们通过一个实例,来演示 did2s
具体估计的情况。
. net get did2s, from(http://fmwww.bc.edu/RePEc/bocode/d)
. use df_het.dta, clear
. *手动计算 (注意这种方式得出来标准差有问题需要调整)
. qui reg dep_var i.state i.year if treat == 0, nocons // 第一阶段回归
. predict adj, residuals //得到去除地区、年度固定效应的结果变量
. reg adj i.treat, cluster(state) nocons //第二阶段回归
Linear regression Number of obs = 31,000
F(1, 39) = 2787.70
Prob > F = 0.0000
R-squared = 0.3776
Root MSE = 1.7506
(Std. Err. adjusted for 40 clusters in state)
------------------------------------------------------------------------------
| Robust
adj | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
1.treat | 2.380 0.045 52.80 0.000 2.289 2.471
------------------------------------------------------------------------------
. *利用did2s进行估计
. did2s dep_var, first_stage(i.unit i.year) second_stage(i.treat) ///
treatment(treat) cluster(state)
(Std. Err. adjusted for clustering on state)
------------------------------------------------------------------------------
| Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
1.treat | 2.266 0.036 62.90 0.000 2.195 2.336
------------------------------------------------------------------------------
. *事件研究模型
. did2s dep_var, first_stage(i.unit i.year) second_stage(i.treat) ///
> treatment(treat) cluster(state)
(Std. Err. adjusted for clustering on state)
------------------------------------------------------------------------------
| Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
1.treat | 2.266 0.036 62.90 0.000 2.195 2.336
------------------------------------------------------------------------------
Note:由于该命令仍处于完善阶段,不免会有诸多问题,更多详细介绍请参考「did2s_stata」和「did2s_r」。
交错或者说多时点 DID 的系数估计和处理效果的解释,是目前 DID 方法最前沿的话题之一。本文首先对由于交错情况的存在而对 DID 系数估计和解释产生的影响做了一些简单直观的说明。然后,提出了通过两阶段估计来获得稳健且更加合理的 DID 系数估计值的方法,并着重介绍了该方法的原理、以及结合具体数据对此进行了分析。如果还想对此有更加深入的了解,可以阅读本文提出有关交错 DID 的一系列文献。
Note:产生如下推文列表的 Stata 命令为:
lianxh 多期 多时点, m
安装最新版lianxh
命令:
ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh