温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装命令如下:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
⛳ Stata 系列推文:
作者: 曹昊煜 (兰州大学)
邮箱: caohy19@lzu.edu.cn
编者按:本文部分内容摘译自下文,特此致谢!
Source:Cattaneo M D, Idrobo N, Titiunik R. A practical introduction to regression discontinuity designs: Foundations[M]. Cambridge University Press, 2019. -PDF-
目录
社会科学家主要对因果关系感兴趣。这种关系在随机试验中很容易得到,但在社会科学中,随机试验会受到道德和实践等诸多因素的限制。在缺少随机试验的前提下,我们往往诉诸于严格的准自然实验干预。其中,RD 方法就是一种最为可信的因果推断分析方法。
在 RD 方法中,所有单位都拥有一个 “得分”,并且得分值高于某个断点的个体接受处理。这一设计的最大特点在于接受处理的概率在门槛值处急剧变化。具体来看,RD 的特征如下:
在 RD 中,每个个体拥有一个得分 (或称为驱动变量 running variable,或指标 index),并且处理取决于得分是否高于断点。
引入一些符号,假设有
但是满足处理条件并不意味着实际受到了处理。当处理条件与实际受到处理的情形一致时,我们称之为精确断点回归 (Sharp RD) 设计,否则称之为模糊断点回归 (Fuzzy RD)。图 1 描述了精确断点回归设计的处理规则,即在断点附近,受到处理的概率从零跳跃至 1。
在使用潜在结果框架分析处理效应时,通常假设个体拥有两个潜在结果
图 2 描述了精确断点回归中的处理效应。在该图中,绘制了给定得分水平时的平均潜在结果,表示为
从图中可以看出,平均处理效应是给定任意得分时,回归曲线的垂直距离,但由于无法观测到同一得分值处的两条曲线,所以这一距离无法直接估计。但在
需要注意的是,我们捕获的信息是
对得分值相近但分布在断点两侧的个体施加可比性假定,是 RD 设计的基础,这一思想主要由 Hahn 等 (2001) 的连续性假定刻画。Hahn 等 (2001) 认为,如果关于
与其他方法相比,精确断点回归仅仅在驱动变量的一个点上计算了平均差异,也就是局部的因果关系。换言之,其处理效应只包含有限的外部有效性,即精确断点回归设计的结果对远离断点的个体没有良好的代表性。
一般来讲,断点回归估计结果的外部有效性或代表性取决于特殊的应用。举例来说,在图 3 的左图中,
提升断点回归的外部有效性是一个重要的话题,除了现有的方法外,更重要的是需要更多的假设。可能包括以下几个方面:
首先,可以通过绘制结果变量和驱动变量的散点图,观察断点前后的变化。但由于很难从中发现 “跳跃”,这种方法很少使用。不过,在这里我们仍然使用 Meyersson (2014) 的原始数据进行一个简单的可视化分析。
关于 Meyersson (2014) 文章介绍,详见「伊斯兰政党上位对女性的影响,我们了解多少?」。
* 数据和代码地址:https://gitee.com/arlionn/data/tree/master/data01/RDD-Stata-R
* 数据初步整理
use "https://file.lianxh.cn/data/RDD_Cattaneo_regdata0.dta", clear
* save RDD_Cattaneo_regdata0.dta, replace // 保存到本地
* use RDD_Cattaneo_regdata0.dta, clear
rename hischshr1520f Y
rename i94 T
gen X = vi1*100
replace Y = Y*100
cls
* 对应的Stata代码
twoway (scatter Y X, mcolor(black) msize(vsmall) xline(0, lcolor(black))), ///
graphregion(color(white)) ytitle(Outcome) xtitle(Score)
# 对应的R代码
plot(X, Y, xlab = "Score", ylab = "Outcome", col = 1, pch = 20,
+ cex.axis = 1.5, cex.lab = 1.5) abline(v = 0)
图 4 为散点图的绘制结果。尽管该结果对分析数据的分布有很大帮助,但我们很难从中发现有关 “跳跃” 的信息。因此,基于原始数据的散点图,即使是在大样本条件下,也很难清晰地得到有效结论。
一个更有效的方法是在绘图前加总或平滑数据。典型的 RD 图示应当提供两方面的信息:
前者是一个简单的平滑近似,可以使用四阶或者五阶多项式在断点左右分别拟合结果变量和得分的关系。结果变量的简单均值则需要在得分的不相交区间或者 “箱体” 内计算,然后使用散点的形式绘制在图上。这两种图示均可视为对未知方程的 (非) 平滑近似。最重要的是,在标准的 RD 图示中,全局多项式是使用全样本估计的,而非区间样本。
图 5 绘制的是总体拟合和局部均值图。该图可以使用 rdplot
命令直接实现,在后文中会有介绍。在这张图中,我们可以看出回归函数很可能是非线性的,同时可以在断点处发现一个明显的向上跳跃,表明当伊斯兰政党的领导人当选时,当地的女性受教育水平可能会有所提高。
选择箱体的形式
在绘制 RD 图示过程中有两种不同类型的箱体,即等长度箱体和等样本箱体,我们分别称之为 “等间隔 (evently-spaced, ES)” 和 “等数量 (quantile-spaced, QS)”。
为了更细致的定义这些箱体,我们假设驱动变量在
上述的定义方式说明
在进一步定义区间之前,我们首先约定
两种箱体具有一定的差异性。尽管 ES 箱体具有相同的长度,但每个区间内的样本数是不同的。如果样本分布并不均匀,那么区间内均值计算结果的精度可能出现或多或少的差异。而 QS 箱体在每个区间内包含大致相同的样本数,因此所有区间上的均值结果是可比较的。除此之外,QS 箱体还具有一个优势,那就是提供了观测值密度的大致分布。
我们使用 rdplot
命令生成 RD 图示,并比较不同箱体之间的差异。其中,箱体的选择主要使用的选项是 binselect
。具体来看:
nbins
;binselect
中的参数改为 qs
。* ES箱体对应的 Stata 代码
rdplot Y X, nbins(20 20) binselect(es) graph_options(graphregion(color(white)) ///
xtitle(Score) ytitle(Outcome))
# ES箱体对应的 R 代码
out = rdplot(Y, X, nbins = c(20, 20), binselect = "es", y.lim = c(0,
+ 25), cex.axis = 1.5, cex.lab = 1.5)
* QS箱体对应的 Stata 代码
rdplot Y X, nbins(20 20) binselect(qs) graph_options(graphregion(color(white)) ///
xtitle(Score) ytitle(Outcome))
# QS箱体对应的 R 代码
out = rdplot(Y, X, nbins = c(20, 20), binselect = "qs", y.lim = c(0,
+ 25), cex.axis = 1.5, cex.lab = 1.5)
选择箱体的数量
当箱体的形式以 QS 或 ES 的方式选定后,还需要确定断点两侧的箱体数量。接下来我们介绍两种在给定箱体类型后,以数据驱动,自动进行的选择
第一个方法通过最小化局部均值的积分均方误差 (Integrated mean-squared error, IMSE) 来选择断点两侧的箱体数量。积分均方误差定义为方差和平方误差的期望和。如果我们选择较大的箱体个数,偏误将会很小,因为区间范围更小并且局部常数拟合也会更好,这一方式的缺陷在于每个箱体内的观测值非常少,导致箱体内的可变性非常大。IMSE 方法的思路正在于平衡误差平方和变异。
选择 IMSE 最优的箱体将得到 “追踪” 潜在回归函数的均值,这意味着 IMSE 最优的箱体更有利于刻画回归函数的形状。然而,IMSE 方法通常在局部均值与全局多项式拟合几乎重合时会绘制出非常平滑的图片,在在断点附近难以捕捉数据的局部变异。
IMSE 最优的
这里的
在软件中,可以使用 IMSE 方法绘制 ES 箱体的图像,使用的命令仍然是 rdplot
和选项 binselect(es)
,但是注意命令中没有了 nbins(20 20)
。以下命令是在 IMSE 最优条件下绘制的 ES 箱体。
* ES箱体对应的 Stata 代码
rdplot Y X, binselect(es) graph_options(graphregion(color(white)) ///
xtitle(Score) ytitle(Outcome))
# ES箱体对应的 R 代码
out = rdplot(Y, X, binselect = "es", x.lim = c(-100, 100), y.lim = c(0,
+ 25), cex.axis = 1.5, cex.lab = 1.5)
在 ES 箱体中,每个箱体的长度仍然是相同的,但是 IMES 标准导致了断点两侧不同的箱体个数,因此断点两侧的区间长度也不相同。
最后,我们使用 IMSE 标准考察 QS 箱体的形式,使用 binselect(qs)
选项并忽略箱体数量选项来实现这一过程。
* QS箱体对应的 Stata 代码
rdplot Y X, binselect(qs) graph_options(graphregion(color(white)) ///
xtitle(Score) ytitle(Outcome))
# QS箱体对应的 R 代码
out = rdplot(Y, X, binselect = "qs", x.lim = c(-100, 100), y.lim = c(0,
+ 25), cex.axis = 1.5, cex.lab = 1.5)
在 QS 情形下,箱体的数量要略多于 QS 箱体,并且断点两侧的区间长度有所不同,其原因在于算法需要保证每个箱体内拥有一样多的观测值。
第二种选择
公式中的
* ES箱体对应的 Stata 代码
rdplot Y X, binselect(esmv) graph_options(graphregion(color(white)) ///
xtitle(Score) ytitle(Outcome))
# ES箱体对应的 R 代码
out = rdplot(Y, X, binselect = "esmv", cex.axis = 1.5, cex.lab = 1.5)
* QS箱体对应的 Stata 代码
rdplot Y X, binselect(qsmv) graph_options(graphregion(color(white)) ///
xtitle(Score) ytitle(Outcome))
# QS箱体对应的 R 代码
out = rdplot(Y, X, binselect = "qsmv", cex.axis = 1.5, cex.lab = 1.5)
本小节中讨论的方法主要基于连续性假定,或者说:
在这一框架下,将
局部多项式方法采用线性回归,但仅仅使用断点附近的观测值。具体而言,该方法关注的观测值处于
选择核函数和多项式阶数
核函数
其原因是,在最优均方误差带宽条件下,三角核函数可以得到均方误差意义下的最优点估计。虽然三角核函数具有优良的性质,但有时我们仍然可能使用均匀核函数,其函数形式为
除了核函数外,多项式阶数的选取也会影响估计结果。首先,如果选择 0 阶多项式,也就是对常数拟合,在边界处无法得到优良的理论性质。其次,对于给定带宽,增加多项式的阶数不但可以改变近似的程度,也可以增加处理效应的可变性。实践中,0 阶多项式和线性多项式拟合几乎相同,但后者拥有更小的渐进偏误。最后,高阶多项式可能产生过拟合导致结果不可靠。
带宽选择及其实现
带宽
选择一个更小的带宽可以减少模型误设的偏误,但同时有可能提高参数估计的方差,因为带宽越窄,使用的样本越少。反过来,使用更大的带宽可以提高估计的精度,但可能提高模型设定的误差。因此,带宽选择又称为 “偏误-方差权衡”。
由于带宽选择非常重要,所以我们需要使用一些数据驱动的方法来避免数据挖掘。多数带宽选择方法正是试图平衡偏误和方法。实践中使用最为广泛的方式即为最小化局部多项式估计的均方误差 (MSE)。断点回归处理效应渐进均方误差的通常形式为:
进一步定义渐进偏误和估计方差为:
标量
偏误的一般形式由
以上的两个极限与未知函数的斜率有关,常数
偏误项取决于回归函数的
方差
该定义与结果变量在断点处的条件变动有关,
为得到最优的 MSE 点估计
依据该准则,我们可以得到: