Stata17:DID和DDD模型(附截面DID+面板DID+DDD+平行趋势检验等)
The following article is from 计量云课堂 Author 数量经济学
计量经济学服务中心专辑汇总!计量百科·资源·干货:
Stata |Python |Matlab |Eviews |R Geoda |ArcGis |GeodaSpace |SPSS 一文读懂 |数据资源 |回归方法 |网络爬虫 门限回归 |工具变量 |内生性 |空间计量 因果推断 |合成控制法 |倾向匹配得分 |断点回归 |双重差分 面板数据 | 动态面板数据
Stata17:DID和DDD模型(附截面DID+面板DID+DDD+平行趋势检验等)
来源:综合整理自:
重磅!Stata 17的新模块(一):DID官方命令 didregress与xtdidregress
Stata新的didregress和xtdidregress命令符合控制未观察组和时间效应的DID和DDD模型。
didreress可以与重复的横断面数据一起使用,其中我们在不同的时间点对不同的观测单位进行抽样。
xtdidreress用于面板(纵向)数据。这些命令提供了一个统一的框架来获得适用于各种研究设计的推理。
差异中的差异(DID)提供了一种非实验研究方法,通过比较对照组和治疗组中不同结果的差异在时间上的差异,来估计平均治疗对治疗的效果(ATET)。因此,称为DID。这项技术控制了未观察到的时间和组别特征,这些特征混淆了治疗对结果的影响。
差异中的差异(DDD)向DID框架添加了一个控制组,以解释DID可能无法捕捉到的不可观察的组特征和时间特征交互。在新的对照组中,它增加了DID。因此,称为DDD(Difference-in-differences-in-differences,简记DDD)。
下面我们介绍一下Stata官方DID命令didregress和xtdidregress。
1、截面DID
DID with repeated cross-sectional data
1.1 语法格式
1.2 didregress案例操作
医疗服务提供者想要研究一种新的住院程序对病人满意度的影响,使用在他们的一些医院实施新程序之前和之后的病人月度数据。
卫生服务提供者将使用DID回归分析新入院程序对参与该计划的医院的影响。
结果变量是病人的满意度,变量名称为 (satis),治疗的变量是程序(procedure),我们可以用didregress拟合这个模型。
第一个表格给出了关于对照组和治疗组以及治疗时间的信息。
第一部分告诉我们,28家医院继续使用旧的程序,18家医院改用新程序。
第二部分告诉我们,所有实施新程序的医院都在第4th时间段内这么做了。如果一些医院后来采取了这一政策,第一次治疗的最短时间和最长时间将有所不同。
第二个表给出了估计的 ATET, 0.85 (95% CI [0.78,0.91])。与没有实施新程序的医院相比,接受治疗的医院的患者满意度提高了0.85个百分点。
该模型的假设之一是,在实施新程序之前,控制组和治疗组的满意度轨迹是平行的。可以通过绘制两组随时间变化的结果或通过可视化线性趋势模型的结果来直观地检查这些轨迹。我们可以使用统计趋势图执行这两种诊断检查。
. estat trendplots
结果为
在政策实施之前,控制医院和治疗医院是平行的。我们可以使用带有统计趋势的平行趋势检验来进一步评估这个假设。
. estat ptrends
结果为
我们没有足够的证据来拒绝平行趋势的零假设。这个检验和图形分析支持平行趋势假设。
我们可能想要进行的另一项检验是,看看在预期治疗中,控制组或治疗组是否会改变他们的行为。这是用格兰杰因果检验来评估的。
. estat granger
结果为
我们没有足够的证据来拒绝治疗前没有行为改变的零假设。连同我们之前的诊断,这些结果表明我们应该相信我们的ATET估计的有效性。
在这个例子中,我们有足够数量的医院(46家)来对我们的治疗效果做出可靠的推断。然而,如果我们只有15家医院的数据,我们可能会考虑其他方法。
为了使用Bell and McCaffrey(2002)自由度调整的偏差校正标准误差,我们可以添加vce(hc2)选项。
. didregress (satis) (procedure), group(hospital) time(month) vce(hc2)
结果为
要使用Donald和Lang(2007)提出的聚合方法,我们可以添加aggregate(dlang) 选项。
结果为
如果我们想允许一些系数在不同的组之间变化,我们可以添加vary的选项。
结果为
我们还可以使用野蛮自举抽样法来获得p值和置信区间。与所有自举抽样的方法一样,我们需要设置种子数字以使结果可复制。
结果为
2、DDD model
关于DDD model的案例背景与前面系列基础知识请往下阅读或者阅读昨日推文重磅!Stata 17的新模块(一):DID官方命令 didregress与xtdidregress
医疗服务提供者想要研究一种新的住院程序对病人满意度的影响,使用在他们的一些医院实施新程序之前和之后的病人月度数据。
卫生服务提供者将使用DID回归分析新入院程序对参与该计划的医院的影响。
结果变量是病人的满意度,变量名称为 (satis),治疗的变量是程序(procedure),我们可以用didregress拟合这个模型。
使用didregress估计双重差分的操作请阅读重磅!Stata 17的新模块(一):DID官方命令 didregress与xtdidregress
下面我们接着介绍。
如果重磅!Stata 17的新模块(一):DID官方命令 didregress与xtdidregress中介绍的操作结果是其他未观察到的变量的结果,而不是新的住院程序的结果,那么它们可能会受到质疑。卫生服务提供者管理者认为,对调查的答复与个人到医院就诊的频率有关。患者可能有未观察到的特征,这影响了他们访问医院的频率和他们对入院程序的感觉。换句话说,可能有一些未观察到的特征混淆了新的住院程序的影响。管理员决定使用DDD模型获取ATET。他们想要估计以高频率或非常高频率就诊的患者的平均治疗效果。
为此,我们将首先创建一个新变量hightrt作为新的处理变量。如果一个人去医院就诊的频率很高或非常高(frequency = 3 or 4,即频率为3或4),或者如果医院在4月份实施了新的入院程序,观察结果将被标记为接受处理(hightrt = 1)。
生成命令为:
DDD模型将纳入医院和使用频率效应,以及它们与时间效应的相互作用。为了拟合该模型,我们加入了一个新的组变量,频率(frequency:):
操作结果为:
上面的第一个表有关于第二组变量,频率的信息,其中低和中频率是控制,高和非常高的频率是处理。
第二个表显示,ATET现在变小了,但策略仍然提高了满意度。
下面我们来学习面板DID
3、面板DID
面板DID
DID for panel-data model
案例1
Moser和Voena(2012)研究了强制许可对国内发明的影响。
强制许可允许发展中国家的公司在没有外国专利所有者同意的情况下生产外国发明。获得外国技术可能会阻碍国内发明,但它也可以提高本地生产。
Moser and Voena考虑了发生在第一次世界大战期间的叫做对敌贸易法(TWEA)的立法。到1919年,德国拥有的专利系统地授权给了美国公司。
在Moser和Voena(2012)中,根据美国专利和商标局(USPTO)的报告,所处理的观察结果与1918年后被授予至少一项TWEA专利的化学工业亚类相对应。根据USPTO的定义,一个子类是行业中使用类似技术的一组公司。
利益的结果是授予美国发明家的专利数量在这个子类,uspatents。这是衡量国内创新的标准。Moser和Voena还包括来自外国发明者的非twa专利的数量。fpatents衡量的是非美国发明家的创新。从1875年到1939年,我们在每个时间点观察到相同的子类。因此,我们有一个面板数据集。
首先导入生成数据
为了估计这个模型,我们首先xtset我们的数据,命令为
下面,我们对一个子类中授予美国发明人的专利数量采用DID模型,并控制授予外国发明人的非twea专利数量。如果子类在1918年后获得了TWEA专利,则获得专利的处理指标为1,否则为0。该模型包括年份固定效应和子类固定效应。
结果为:
ATET为0.15,这意味着在获得一项或多项专利的子类别中,与未授予这些子类别专利的情况相比,在TWEA之后,国内发明者平均产生了0.15个额外的专利。
案例2
关于DDD model的案例背景与前面系列基础知识请往下阅读或者阅读昨日推文重磅!Stata 17的新模块(一):DID官方命令 didregress与xtdidregress
医疗服务提供者想要研究一种新的住院程序对病人满意度的影响,使用在他们的一些医院实施新程序之前和之后的病人月度数据。
卫生服务提供者将使用DID回归分析新入院程序对参与该计划的医院的影响。
结果变量是病人的满意度,变量名称为 (satis),治疗的变量是程序(procedure),我们可以用didregress拟合这个模型。
使用didregress估计双重差分的操作请阅读重磅!Stata 17的新模块(一):DID官方命令 didregress与xtdidregress
关于DDD模型请阅读重磅!Stata 17的新模块(二):DDD操作分析
接下来我们进行面板DID操作分析。
cd C:\Users\admin\Desktopuse 计量经济学服务中心hospdid.dta,clear
然后进行面板设定
*面板数据设定xtset hospital
面板DID操作
结果为:
4、Stata17:截面DID+面板DID平行趋势检验汇总
如截面DID平行趋势检验所示,在进行DID研究时,通常使用图形诊断和检验来补充回归分析,以提供证据,说明估计效果是否可以给出因果解释。正如在DID介绍中所讨论的,我们希望观察到治疗组和对照组在治疗前的平均结果彼此相似。这通常被称为平行趋势或共同趋势假设。
我们还想确定,无论是对照组还是治疗组,都没有因预期治疗而改变他们的行为。这是通过格兰杰检验来评估的。
下面,我们使用模拟数据来说明didregress和didregress后可用的诊断和测试。模拟数据帮助我们确切地知道我们应该期望什么以及如何解释它。
假设我们有一个有10个时间点的面板数据集,用t1表示,其中治疗发生在t1 = 5和t1 = 6之间。我们有一组协变量,x1 x2,和一个结果y1。结果可以是病人满意度,如例子1,或者美国发明家申请的专利数量,如例子3。
导入数据
进行DID分析
这个结果有效吗?我们首先可以绘图来探讨平行趋势的假设,比较对照组和治疗组在治疗日期前的结果变量的轨迹。我们可以通过绘制两组结果随时间变化的平均值,或者通过可视化线性趋势模型的结果来验证这个假设。我们可以使用统计趋势图来执行这两种诊断检查。
观察图表(图2左侧),对照组和治疗组在治疗前的结果轨迹略有不同。虽然我们可以观察到两组的下降趋势,但看起来对照组的下降速度更快,
尤其是在三点到五点之间。通过查看图2右侧的线性趋势模型的结果,我们可以更清楚地了解这一点。组水平的轨迹显示了一个共同的参考点,t1 = 1,这使得很容易辨别他们是否平行。在这种情况下,我们可以看到它们不是。治疗组和对照组之间的差异随着时间的推移越来越大,直到t1 = 5(在评估平行趋势假设时,治疗后的时间周期并不相关)。仅从图2判断,我们应该关注平行趋势假设是否适用于我们的效果估计。
评估预处理轨迹是否平行的一种更正式的方法是对线性趋势模型系数进行测试,以捕获处理后和对照组之间趋势的差异。如果预处理趋势在两组中实际上都是线性的,那么这个系数将为0,因为两组之间的斜率没有差异。因此,通过对0检验这个系数,我们可以检验前处理阶段轨迹是平行的零假设。我们可以使用estat ptrends来执行这个测试:
我们拒绝线性趋势平行的零假设。
我们也可以把不平行看作是预期治疗效果的指示。我们看到这些趋势在治疗开始前并不平行,这甚至可以在治疗实施前就表明治疗效果。
因此,另一种陈述我们平行趋势假设的方法是,在预期的治疗中不应该有治疗效果。为了验证这一假设,我们可以拟合格兰杰型因果模型,在该模型中,我们使用虚拟变量来表明治疗前每一段时间的未来治疗状态。这些虚拟变量的系数对0的联合检验可以用来检验没有发生预期效果的零假设。我们可以使用estat granger执行这个测试:
结果表明,我们拒绝治疗前没有预期效果的零假设。因此,根据统计趋势和统计格兰杰的结果,我们认为应该关注ATET的识别。
注意,平行趋势F检验只消耗1个分子自由度,而格兰杰因果关系F检验消耗4个分子自由度。这是因为我们有5个预处理时间段,因此有4个系数需要测试。在本例中,两种测试都是合适的,但是并行趋势测试具有更高的统计能力。然而,正如我们将在下文中看到的那样,格兰杰检验更为灵活,可用于预处理期间治疗组和对照组之间的差异是非线性的情况。