❀ 引言
断点回归是一个能够让我们识别 localized causal effect 的一种技术。 具体内容可见上回推送:谈谈因果识别与断点回归设计(RDD)
今天,给大家带来的是非参估计下的断点回归。
上篇推送的例子主要是基于线性关系的假设。也就是:图上都是直线.....
但是,更令人感兴趣或者说更接近现实的是,因变量和自变量之间存在非线性的关系(nonlinear)。也就是今天的重点:非参数断点回归!
❀❀ RDD 的前提及检验
在进入正题之前,我们先来回顾一下断点回归的前提。
在统计学和计量经济学中,所有基于非实验数据的识别方法都希望能够符合“外生性”假设,就是说,导致结果变量 y 的原因变量 x 跟残差项是不相关的。
在这个例子中,那些获得 treatment 的人和没有获得 treatment 的人是 systematically 不一样的。
在断点回归的假设中,
❀ 因为 cut off 在事前是不知道的,
❀❀ X 变量的取值又是不能完全被操控的。
那么在政策评判标准出来之后(公布cut off),在断点周围近距离的两组人就不会是:systematically 不一样的。
在实际操作中,一般我们怎么检查这两个前提在你的例子里面是否成立呢? 1) 样本数量分布check:做一个样本分布的 density 图(stata histogram 命令),在断点附近样本的 density 是基本一致的,至少不能出现跳跃。2)样本的组成 check,利用一些 pre-determine 变量对断点左右两组人进行事前特征对比,证明这两组人的事前特征无显著差异。两个检验通过,那么随机就能够得到保证。
那么,我们可以自信地说因为这两个前提,使得 cut off 对于断点附近的个体来说相当于一个随机的外生变量。这样我们得出来的 Causal effect 就是很干净的,至少比起 IV,DD 等常见方法都干净。比如,一般地,在 IV 方法中,我们面临着严重的 untestable 问题;在 DD 方法中,我们很难下论断说控制组和实验组都是随机的,只要非随机,别人就可以质疑你的结果;在 PSM 方法中,永远存在遗漏变量问题,那么就跟 OLS 一样了,此时,核心变量的系数是正是负都无法确定,这就尴尬了。
下面将通过:个体“上暨南大学”的效益和 这个个体“未来的表现(假设是一个综合性指数 Performace Index)”的例子来说明。即 “performance” 变量为 outcome ;“暨大” 为 treatment; treatment 根据 score(高考分数)来决定。
❀❀❀ 模拟数据生成
clear
set obs 10000
set seed 100
gen score = 3^((runiform()-.75)*4)
label var score "高考分数"
sum score
gen perf0 = ln(score) + sin((score-r(min))/r(max)*4*_pi)/3 + 3
label var perf0 "Performance Index - Base"
scatter perf0 score

*从散点图可以看到很漂亮的非线性关系。
* 让我们来点黑暗料理(Random Noise)
gen perf1 = perf0 + rnormal()*.5
label var perf1 "Performance Index - with noise"
scatter perf1 score

*安装 rcspline 命令
* ssc install rcspline
rcspline perf1 score, nknots(7) showknots title(三次样条曲线)

recode score (0/0.5=0) (0.5/3=1), gen(暨大)
sum 暨大
* 加一点“暨大”效应
*标准化 Running Variable
gen score_center = score-0.5
gen perf2 = perf1 + 0.5* 暨大 - 0.1*score_center* 暨大
label var perf2 "Observed Performance"
❀❀❀❀ 估计
rcspline perf2 score_center, knots(.15 .25 .35 .37 .4 .45 .5 .55 .6 .65 .75 .85 1.1 1.25 1.5) title(三次样条曲线)

reg perf2 score 暨大

我们可以看到这里估计出来的“暨大”效应是完全偏离我们模拟数据时的设定系数(0.5)。
rdrobust 命令下的估计
*findit rdrobust
rdrobust perf2 score_center
* 此命令用到来选择 bandwidth 是 CCT 方法

rd命令下的估计
*findit rd
rd perf2 score_center

*rd命令中默认的 mbw 是 "100 50 200" ,就是说该命令根据 100 MSE (mean squared error) 的最小化来选取 bandwidth,(接着是 50一半 和 200 两倍)。
bandwidth的背后是啥?
* 我们可以把使用不同带宽情况下的估计值画出来。
gen effect_est = .
label var effect_est "Estimated Effect"
gen band_scale = .
label var band_scale "Bandwidth as a Scale Factor of Bandwidth that Minimizes MSE"
forv i = 1/16 {
rd perf2 score_center, mbw(100 `=`i'*25')
if `i' ~= 4 replace effect_est = _b[lwald`=`i'*25'] if _n==`i'
if `i' == 4 replace effect_est = _b[lwald] if _n==`i'
replace band_scale = `=`i'*25' if _n==`i'
}
gen true_effect = .5
label var true_effect "True effect"
two (scatter effect_est band_scale) (line true_effect band_scale)

我们可以看到在一开始带宽比较窄的时候,估计值是比较稳定且接近真实值的,而后就剧烈的偏离了。
在RDD方法的 bandwidth (带宽) 背后其实是一对 trade off,因为 RDD 前提成立时,则局部随机,bandwidth 太大的话,估计结果的随机性就降低了,远离断点的两组个体可能是 systematically 不一样的;但是如果带宽太小的话,估计值的准确性会因样本量太少而受到威胁。所以在非参 RDD 中,带宽的选择是一个很大的学问。有兴趣的读者可以继续阅读参考文献。
转载请联系公众号授权
点击“阅读原文(read more)”获取数据
往期推文推荐:
0、如何用Stata进行地图数据可视化
1、如何使用ArcGIS制作地图展示数据
2、Stata常用字符串数据处理函数
3、民主能促进经济增长吗?4、好男人都结婚了吗?--我国男性工资婚姻溢价形成机制5、怎样用Stata获取已知地址经纬度坐标6、如何用LaTeX快速做笔记
小花经济学术
本公众号由暨南大学经济系2013级本科生彭文威运营,致力于分享经济学科研软件应用和有趣的经济学文献。长按二维码关注
