断点回归(Regression Discontinuity Design, RDD)是一种准实验设计方法,用于评估政策或其他干预措施的效果。这种方法利用了一个清晰的阈值或"断点",在这个阈值上,处理状态(例如是否接受某种干预)会突然改变。通过比较断点两侧单位的差异,可以估计出干预效果。
一个生活中的例子是关于学生的奖学金分配。假设一所大学设立了一项奖学金,只有那些平均成绩达到80分以上的学生才有资格获得。这里,80分就是断点。在80分之上的学生和80分之下的学生在其他方面可能非常相似,但由于这个政策,他们的一个关键区别就是前者获得了奖学金而后者没有。
- 有一个突变过程,想象一下分段跳跃函数
反事实:
如果你不读博,你现在在干嘛?可惜你已经读博了,回不去了。所以反事实很难构建。
取平均后的效应( S 1 − S 0 S_1-S_0 S1−S0)是被高估的。
原因:
-
1.高分可能人更聪明,可能获得更好的发展空间
-
2.高分人的家庭条件更好,实习的机会更多,家庭的社会资源更广
-
3.。。。。就是原因可能并不完全来自【政策、处理】的效应。
那么该如何估计呢? -
1.设计一个小窗
-
2.在小窗内建立一个模型,但限制在小窗范围内
-
3.用前一个断点代替反事实
-
4.两者相减,得到处理效应
-
断点推文
模拟实验验证
- 产生数据
- 数据可视化
传统估计方法
- 简单均值比较
- 全样本回归
分别估计断点前后的线,计算出 τ 2 − τ 1 \tau_2-\tau_1 τ2−τ1就是处理效应。
这种也是高估的。 - 下面展示的是模型设定 造成的偏差
- 下面是正解
断点:多项式回归-二次函数
断点:局部线性
- 适用条件:在断点局部有足够多的数据
RDD估计-理论
-
截距的阐释
-
以上就是一个平移【左加右减】,可以看出线不动,动坐标轴
-
x c < 0 xc<0 xc<0 control 组 and x c > 0 xc>0 xc>0 treat组
-
其实用用 α 1 \alpha_1 α1当作 α 2 \alpha_2 α2反事实。
-
关于h(窗宽)h越大,样本区间越大,估计越准确,但风险越高(样本区间的x和y不一定是线性关系),h越小,线性拟合越合理。
分两种情形的讨论
- 模型-平行斜率(左1)
- 模型-变斜率(左2、3)
注意在模型假设的形式上的区别。
当h扩大,线性假设可能不成立,如下图。所以,可以采取加平方项的局部多项式回归。模型假设如下(右下角)
记住一点:RDD算的处理效应其实就是在断点两边分别估完方程后与y【断点竖向轴线】的交叉值的差 其实斜率不重要。
RDD的stata模拟
- 标准stata的RDD实现代码
最优带宽的选择
bash
rdrobust y x 自动选择带宽
- 一般在论文中要报告:左右两边的图像拟合情况。下面是代码和图像
- 注意:上图的散点其实是的分组 求平均的
- 比如:N=4000,带宽内的样本占比0.2,N1=800,在左右分成20组,一组N2=20,对组内求平均,左右各画20个点。
扩展:是否加入控制变量
连老师:其实不用 ,加入控制变量会出现变量冗余,通过局部多项式估计(1次2次3次项作为控制)之后,其实就够了,但一部分文献做了,可能是为了估得更准。
建议:都行,目前在争论。
关于局部多项式【高阶问题】 项数的选择问题
给出实验
模拟数据给出:阶数似乎越大越好,但这是基于我们知道模拟数据的真实情况,日常科研中,我们不是上帝,不知道真是的处理效果。
- 解决办法:信息准则
- AIC的模型更丰满(参数更多)-选M8
- BIC的模型更骨干(参数较少)-先M5
核加权局部多项式
- 用核密度函数估计
bash
lpoly y x if x<0 ,at(cut) gen(av_y0) 左边条件
lpoly y x if x>=0 ,at(cut) gen(av_y1) 左边条件
总结
- 借助局部线性回归模型 Or 非线性(加入平方、三次、n次控制)
- 关键点是h的选择,有自动的代码
rdrobust