查看原文
其他

软件应用 | Stata 17的新功能(三):使用数据加总法估计DID

数据Seminar 2022-12-31

The following article is from 计量经济学及Stata应用 Author 陈强

作者:陈强

本文转载自公众号:计量经济学及Stata应用

前两期推文

Stata 17的新功能(一):双重差分法(DID)的官方命令


Stata 17的新功能(二):使用Wild Cluster Bootstrap估计DID的标准误

 

由于DID本质上为面板数据的双向固定效应模型,故一般使用聚类稳健标准误(cluster-robust standard errors)进行统计推断。然而,若聚类数目太小,则会导致偏差;因为大样本理论要求聚类数目足够大,才能保证估计量的标准误收敛到真实的标准误。


Stata 17DID官方命令xtdidregress提供了在聚类数目较小情况下估计标准误的两种替代方法,即“野聚类自助法”(wild cluster bootstrap,已在上期推文介绍)与“数据加总法”(data aggregation)。


本期推文介绍“数据加总法”。Stata 17手册所提供的模拟数据smallg.dta为例。首先,载入数据,并设为面板。

 

. use https://www.stata-press.com/data/r17/smallg, clear

(Simulated data with a small number of groups)

 

. xtset id year

 

Panel variable: id (strongly balanced)

 Time variable: year, 2011 to 2015

         Delta: 1 unit

 

结果显示,这是一个从2011年至2015年的五期平衡面板。更直观地,查看前10个观测值。

 

. list in 1/10

 

 

其中,outcome为结果变量(被解释变量),treated为处理变量(treatment variable,即DID的交互项),x为一个连续的协变量,而b则为一个离散的协变量(类别变量)。


变量county表示样本中的2000位个体分属6个不同的县。其中,第1-2个县的所有个体均属于处理组,而第3-6个县的所有个体都属于控制组(从未受到政策冲击)。

 

考虑到同一县不同个体的扰动项之间可能存在相关性(比如,受到同一县级政策的影响),下面以变量county为聚类变量,进行DID估计:

 

. xtdidregress (outcome x i.b) (treated), group(county) time(year)

 

其中,必选项“group(county)”表示将标准误聚类到县级。

 

 

然而,由于样本中只有6个县,聚类到县级的标准误可能存在较大偏差。此时,我们面临着一个两难处境。若聚类到个体层面,虽然聚类数目达到2000个,可满足大样本理论的要求,但忽略了同一县不同个体之间的相关性,可能导致偏差。另一方面,若聚类到县级,虽然考虑了同一县不同个体之间的相关性,但聚类数目仅为6个,也会导致偏差。

 

为此,Stata 17DID官方命令xtdidregress提供了两个解决方法。方法之一为使用“野聚类自助法”(wild cluster bootstrap),已在上期推文介绍。使用野聚类自助法,并不改变DID的系数估计值,而仅改变标准误。

 

数据加总法的步骤

 

方法之二为“数据加总法”(data aggregation)”。若使用数据加总法,则对数据进行了变换,故不仅改变标准误,而且DID的估计系数也有所不同。


数据加总法分为两步。首先,针对每个聚类、时间,进行组内离差回归(将每个聚类、时间中的个体视为一组数据)。其次,将个体层面的数据加总为聚类、时间层面的数据,然后进行回归。为方便说明,考虑以下DID模型:

   

                             

其中,下标i表示第i位个体,下标g表示第g个聚类(比如第g个县),而下标t表示时间。处理变量表示聚类g在第t期是否受到处理,而为我们感兴趣的处理效应。


为便于阐述,进一步将协变量分为两类,即不随个体而变量的部分,以及随个体而变量的部分。由此,可将方程写为

 

 

注意到,在此方程的右边,只有与个体有关。为此,进一步将方程改写为
 

 

其中,为类别变量:



即以每个聚类、时间为一个类别(一组数据)。为了估计此方程,一种方法是引入每个类别的虚拟变量,然后进行OLS回归。另一种方法则是进行“组内离差变换”(以每个聚类、时间中的个体为一组)。


具体而言,给定聚类、时间,先将此方程对该组内的所有个体进行平均:

 

 

在此平均方程中,个体下标i已被平均掉。然后,将原方程减去此平均方程可得:

 

 

对上式进行OLS回归,可得估计量(类似于面板数据的组内估计量,但组的定义不同)。将代回原方程,即可得到的估计量这就是数据加总法的第一步。


数据加总法的第二步,将代入类别变量的方程:



此方程为在类别层面的回归,以每个类别为观测单位,而与类别中的个体无关。若假设,而,则此回归的样本容量为。以OLS回归估计此方程,所得即为DID估计量。


在使用Stata 17命令xtdidregress进行DID估计时,若加上选择项“aggregate(dlang)”,则汇报此OLS估计量及普通标准误;其中“dlang”指Donald and Lang (2007,发表于Review of Economics and Statistics)。另一方面,若加上选择项“aggregate(standard)”,则汇报此OLS估计量,并提供以g为聚类变量的聚类稳健标准误。

 

数据加总法的Stata操作

 

首先,使用选择项“aggregate(dlang)”进行数据加总法的DID估计:

 

. xtdidregress (outcome x i.b) (treated), group(county) time(year) aggregate(dlang)



结果显示,此回归的样本容量为30,即6个县乘以5个时期。数据加总法的DID估计系数为-0.996,非常接近于真实的处理效应-1,且在1%水平上显著;而所汇报的普通标准误为0.122

 

其次,使用选择项“aggregate(standard)”进行数据加总法的DID估计:

 

. xtdidregress (outcome x i.b) (treated), group(county) time(year) aggregate(standard)

 

 

结果显示,数据加总法的DID估计系数依然为-0.996,且在1%水平上显著;但所汇报的聚类稳健标准误为0.134,略有上升。当然,由于只有6个聚类,故聚类稳健标准误也未必合适。为此,也可以通过选择项“vce(robust)”来汇报异方差稳健的标准误:

 

. xtdidregress (outcome x i.b) (treated), group(county) time(year) aggregate(standard) vce(robust)

 

 

结果显示,异方差稳健的标准误为0.135,十分接近于聚类稳健标准误。另外,在计算异方差稳健的标准误时,还可以使用Bell and McCaffrey (2002,发表于Survey Methodology)所建议的自由度调整(degrees-of-freedom adjustment),可通过选择项“vce(hc2)”来实现:

 

. xtdidregress (outcome x i.b) (treated), group(county) time(year) aggregate(standard) vce(hc2)

 

 

结果显示,经自由度调整后的异方差稳健标准误为0.137,变化不大。




参考文献


陈强,《高级计量经济学及Stata应用》,第2版,高等教育出版社,2014年


陈强,《计量经济学及Stata应用》,高等教育出版社,2015年


陈强,《机器学习及R应用》,高等教育出版社,2020年11月,472页,双色印刷


陈强,《机器学习及Python应用》,高等教育出版社,2021年3月,632页,双色印刷





星标⭐我们不迷路!
想要文章及时到,文末“在看”少不了!

点击搜索你感兴趣的内容吧


往期推荐



统计计量 | 陆铭:交互项有什么用?为啥要做异质性分析?(加导读版)

统计计量 | 实证分析三步走:数据、模型、结果检验

数据呈现 | 一行 Python 代码绘制酷炫科研风格图表!

数据呈现 | 厉害了,Pandas表格还能五彩斑斓的展示数据,究竟是怎么做到的呢?

数据资源 | 答辩过了!六个惊艳导师组的数据可视化工具

数据资源 | 这15个获取数据的爆赞的网站,你用过几个?






数据Seminar




这里是大数据、分析技术与学术研究的三叉路口


推荐 | 张静红


    欢迎扫描👇二维码添加关注    

点击下方“阅读全文”了解更多

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存