统计计量 | 考虑溢出效应的倍分法:spillover-robust DID
The following article is from 连享会 Author 连享会
本文转载自公众号连享会( ID:lianxh_cn )
作者:袁子晴 (香港大学)
邮箱:yzq0612@foxmail.com
目录
1. 问题背景 2. 模型设定
2.1 经典的双重差分法 2.2 溢出稳健-双重差分法 3. Stata实现:cdifdif命令
3.1 Stata实例 4. 总结 5. 参考文献
Part1问题背景
Part2模型设定
2.1 经典的双重差分法
溢出效应带来的 估计偏差 取决于以下两方面:
对控制组产生的溢出效应的 方向及大小; 受溢出效应影响的 样本占总体的比例。
2.2 溢出稳健-双重差分法
2.2.1 模型设定
2.2.2 模型优势
a. 对外溢的具体形式没有严格限制,处理组的政策效应可以外溢到控制组,溢出效应依赖于到最近处理组的距离; b. 存在外溢效应的区域是由最优带宽确定的,避免人为主观设定。
2.2.3 前提假设
假设1: 处理组 和 控制组 之间的平行趋势
假设2: 近邻组 与 控制组 之间的平行趋势。
假设3: SUTVA 局部成立,即在总样本 中,部分个体 子集,其潜在结果 ( , ) 与是否受到政策处理无关
假设4A:是否会被分配到近邻处理组取决于到处理组的距离 ,外溢效应在该距离超过阈值 时消失殆尽,即当 时, .
假设5:溢出效应随距离的单调性 (Monotonicity of Spillovers in Distance)
Part3Stata 实现:cdifdif 命令
cdifdif
,相关程序可以到如下仓库下载,并参照 -Stata: 外部命令的搜索、安装与使用- 进行安装[1]:github 仓库地址[2]:https://github.com/damiancclarke/cdifdif 码云仓库地址[3]:https://gitee.com/arlionn/cdifdif
cdifdif yvar xvars [if] [in] [weight], ///
distance(varname) maxdist(real) [options]
基本选项如下:
distance(varname)
:指定 距离变量,用于度量给定时间段内给定 观测值到最近的处理组的距离。当个体属于处理组时,该变量取值为零。在政策实施前,该变量取值为零,或者设置为缺失值。maxdist(real)
:指定测试 最优带宽的范围,从最小值开始,以delta(#)
为单位递增,直到达到maxdist
。请注意,maxdist
并不意味着不能估计超过设定数值的溢出效应,而是在选择最优带宽时不会考虑超出maxdist
所设定的数值。delta(#)
:测试最佳距离带宽时搜索网格的精细度 (步长)。该数值较小,表明后续测试的带宽应该是紧密间隔的,从而在确定RMSE最佳带宽时考虑更多的带宽选择。该数值应该基于距离变量(varname
) 的度量单位来加以设置。regtype(string)
:指定用 yvar 和 xvars 估计的回归模型,包括areg
,regress
。此外,适用于areg
,regress
的选项,例如聚类稳健标准误cluster()
或者固定效应的选项absorb()
也能直接使用tlimit(#)
:显著性水平设定,默认为 1.96stub(string)
:指定近邻处理变量的名称, 默认情况下,自动返回一系列以 _close开头的变量nogenerate
:不汇报近邻处理变量,只输出最优的回归模型plotrmse
:将测试的每个溢出带宽的 RMSE 值以图表的方式呈现出来kfold(#)
:在最小化 RMSE 估计最优带宽时,默认使用 k-fold 交叉验证 (除非指定loocv
),指定kfold(#)
允许预测 时使用使用的参数可以改变。默认为kfold(10)
loocv
:估计最优带宽时使用 leave-one-out 交叉验证,而不是 k-fold 交叉验证,但当观测值数目较多的时候,这种方法较慢verbose
要求汇报更多方法细节,建议在指定 loocv 时使用nonoptimal
要求不使用最佳带宽搜索过程,不建议使用该方法,因为研究者需要自行设定带宽h(#)
指定用于回归的带宽,只有在指定了nonoptimal
时生效。
3.1 Stata 实例
. webuse set "http://www.damianclarke.net/data/"
. webuse "spilloverDGPs", clear
. cdifdif y1 treat i.time, distance(distance) ///
maxdist(25) regtype(areg) abs(id) cluster(id)
Linear regression, absorbing indicators Number of obs = 1,000
Absorbed variable: id No. of categories = 500
F( 7, 499) = 591.12
Prob > F = 0.0000
R-squared = 0.9631
Adj R-squared = 0.9251
Root MSE = 0.9453
(Std. Err. adjusted for 500 clusters in id)
------------------------------------------------------------------------------
| Robust
y1 | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
treat | 10.09622 .2142248 47.13 0.000 9.675327 10.51711
1.time | .8729984 .1088206 8.02 0.000 .6591953 1.086801
_close_0_5 | 5.085146 .4182907 12.16 0.000 4.263318 5.906974
_close_5_10 | 3.931074 .3684214 10.67 0.000 3.207225 4.654922
_close_10_15 | 3.447174 .4837801 7.13 0.000 2.496677 4.397671
_close_15_20 | 2.12119 .5336645 3.97 0.000 1.072683 3.169696
_close_20_25 | .9494996 .4319377 2.20 0.028 .1008589 1.79814
_cons | 3.522413 .042297 83.28 0.000 3.43931 3.605515
------------------------------------------------------------------------------
Optimal Distance calculated is 5
Maximum spillover distance is 25
plotrmse
,我们可以得到下图,直观地展示了再不同带宽选择下的 RMSE 值,我们可以观察到在带宽为 5 时,RMSE 取最小值,也验证了上述最优带宽的选择。. cdifdif y1 treat i.time, distance(distance) ///
maxdist(25) regtype(areg) abs(id) cluster(id) plotrmse
. cdifdif y1 treat i.time, distance(distance) maxdist(25) ///
regtype(areg) abs(id) cluster(id) loocv verbose
RMSE for 25 is 1.1252901
Linear regression, absorbing indicators Number of obs = 1,000
Absorbed variable: id No. of categories = 500
F( 7, 499) = 591.12
Prob > F = 0.0000
R-squared = 0.9631
Adj R-squared = 0.9251
Root MSE = 0.9453
(Std. Err. adjusted for 500 clusters in id)
------------------------------------------------------------------------------
| Robust
y1 | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
treat | 10.09622 .2142248 47.13 0.000 9.675327 10.51711
1.time | .8729984 .1088206 8.02 0.000 .6591953 1.086801
_close_0_5 | 5.085146 .4182907 12.16 0.000 4.263318 5.906974
_close_5_10 | 3.931074 .3684214 10.67 0.000 3.207225 4.654922
_close_10_15 | 3.447174 .4837801 7.13 0.000 2.496677 4.397671
_close_15_20 | 2.12119 .5336645 3.97 0.000 1.072683 3.169696
_close_20_25 | .9494996 .4319377 2.20 0.028 .1008589 1.79814
_cons | 3.522413 .042297 83.28 0.000 3.43931 3.605515
------------------------------------------------------------------------------
Optimal Distance calculated is 5
Maximum spillover distance is 25
Part4总结
Part5参考文献
Damian Clarke 个人主页[5] (damian.clarke@usach.cl) Clarke, D. (2017). Estimating Difference-in-Differences in the Presence of Spillovers. PDF[6] 外部命令源代码:码云[7];Github[8]
友情链接
-Stata: 外部命令的搜索、安装与使用- 进行安装: https://www.lianxh.cn/news/c2ab130d9873d.html
[2]github 仓库地址: https://github.com/damiancclarke/cdifdif
[3]码云仓库地址: https://gitee.com/arlionn/cdifdif
[4]Stata:交叉验证简介: https://www.lianxh.cn/news/899f4de52f8a3.html
[5]Damian Clarke 个人主页: http://www.damianclarke.net/
[6]PDF: https://mpra.ub.uni-muenchen.de/81604/1/MPRA_paper_81604.pdf
[7]码云: https://gitee.com/arlionn/cdifdif
[8]本文转载自公众号:连享会(ID:lianxh_cn),作者:连享会。
星标⭐我们不迷路!想要文章及时到,文末“在看”少不了!
点击搜索你感兴趣的内容吧
往期推荐
数据Seminar
这里是大数据、分析技术与学术研究的三叉路口
推荐 | 青酱
欢迎扫描👇二维码添加关注