温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh
作者: 袁子晴 (香港大学)
邮箱: yzq0612@foxmail.com
目录
自然实验通常依据地理边界来划分处理组和控制组,但是由于政策的 外部性 或者个体的策略性 迁移决策 (主动地从控制组地区迁移至处理组地区) ,在 处理组 和 控制组 之间可能发生 溢出效应,即政策处理效果可能会蔓延到近邻的控制组。
这种情况违反了双重查分法的 SUTVA 假定 (Stable Unit Treatment Value Assumption),即不同个体是否受到政策影响是相互独立的,也就是说某一个体受政策影响的情况 (Treatment Status) 不得影响任何其他个体的结果。
考虑到这一问题,Clarke (2017) 介绍了一种灵活的方法来检验这种溢出效应,并在溢出效应存在的情况下估计政策处理效应。
首先我们来回顾一下包含了个体和时间的双固定效应双重差分法模型,核心解释变量是
溢出效应带来的 估计偏差 取决于以下两方面:
考虑到溢出效应,我们运用 溢出稳健-双重差分法 (spillover-robust DID method) ,模型设定如下:
通过 引入近邻处理组,此框架放松了 SUTVA 的假定,只要求 部分满足 SUTVA 假定,来估计政策处理效应 (Treatment Effects) 和 “近邻” 处理效应 (“Close” to Treatment Effects)。
该方法主要有以下两方面的优势
假设1: 处理组 和 控制组 之间的平行趋势
假设2: 近邻组 与 控制组 之间的平行趋势。
假设3:SUTVA 局部成立,即在总样本
假设4A:是否会被分配到近邻处理组取决于到处理组的距离
满足 假设1~4A 后,「溢出稳健-双重差分法」可以得到一致估计量,其中 假设4A 可以被进一步放松,即近邻处理组的分配机制可以进一步细化。
假设4A 中,决定是否会被分配到近邻处理组
其中,对于
其实,某个体离处理组的距离
Clarke (2017) 为溢出稳健-双重差分法提供了 Stata 外部命令 cdifdif
,相关程序可以到如下仓库下载,并参照 -Stata: 外部命令的搜索、安装与使用- 进行安装:
该命令的语法结构如下:
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.96
stub(string)
:指定近邻处理变量的名称, 默认情况下,自动返回一系列以 _close 开头的变量
nogenerate
:不汇报近邻处理变量,只输出最优的回归模型
plotrmse
: 将测试的每个溢出带宽的 RMSE 值以图表的方式呈现出来
kfold(#)
:在最小化 RMSE 估计最优带宽时,默认使用 k-fold 交叉验证 (除非指定 loocv
),指定 kfold(#)
允许预测 kfold(10)
loocv
:估计最优带宽时使用 leave-one-out 交叉验证,而不是 k-fold 交叉验证,但当观测值数目较多的时候,这种方法较慢
verbose
要求汇报更多方法细节,建议在指定 loocv 时使用
nonoptimal
要求不使用最佳带宽搜索过程,不建议使用该方法,因为研究者需要自行设定带宽
h(#)
指定用于回归的带宽,只有在指定了 nonoptimal
时生效。
接下来的实例中,我们控制了个体和时间固定效应,采用聚类在个体层级的聚类稳健标准误,将最优带宽的搜索范围限定在 25 之内,回归结果表明外溢效应与政策效应的方向一致,而且在统计上显著,该溢出效应随着距离的增加而衰减。回归结果还汇报了最优带宽为 5。
. 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
我们还可以采用 leave-one-out 交叉验证来估计最优带宽 (参见 Stata:交叉验证简介 ),该方法耗时较长,最终的结果与上面保持一致。
. 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
经典双重查分模型的前提假设是处理组和控制组泾渭分明,井水不犯河水,但是考虑到外溢效应,这一假设往往并不满足,可能会导致有偏的估计结果,所以 Clarke (2017) 提供了溢出稳健双重查分模型来解决这一问题,具体模型细节和证明请参阅原文,启示是我们可以在稳健性检验部分借鉴这一方法并且与基准模型相对比,从而增加结果的可信性和说服力。
Note:产生如下推文列表的命令为:
lianxh DID 倍分法 交叉验证 外部命令的搜索, m
安装最新版lianxh
命令:
ssc install lianxh, replace