断点回归设计(Regression Discontinuity Design, RDD)是因果推断中最接近随机实验的准实验方法之一。当处理分配基于某个连续变量是否超过特定阈值时,RDD利用阈值附近个体的”准随机”分配来识别因果效应。这种方法在政策评估、教育研究和商业决策中有着广泛应用,因为许多实际决策规则都基于明确的阈值标准。
本章将系统介绍RDD的理论基础、实施方法和实践应用。我们将学习如何在精确和模糊的处理分配场景下应用RDD,掌握带宽选择和稳健性检验的关键技术,并通过实际案例理解RDD的优势与局限。
精确断点回归适用于处理完全由运行变量(running variable)决定的情况。设 $X_i$ 为运行变量,$c$ 为断点(cutoff),处理分配规则为:
\[D_i = \mathbb{1}(X_i \geq c)\]其中 $D_i$ 是处理指示变量。在断点附近,我们可以将因果效应识别为:
\[\tau_{RDD} = \lim_{x \downarrow c} E[Y_i | X_i = x] - \lim_{x \uparrow c} E[Y_i | X_i = x]\]Sharp RDD的关键识别假设包括:
连续性假设:潜在结果的条件期望在断点处连续 \(E[Y_i(0) | X_i = c^+] = E[Y_i(0) | X_i = c^-]\)
局部随机化:在断点附近,个体无法精确操纵运行变量
单调性:处理分配在断点处严格变化
运行变量分布图示:
|
密 | 。。。
度 | 。 。
|。 。
|。 。。
|____________。___
c 断点
实践中,我们通常使用局部线性回归来估计RDD效应:
\[Y_i = \alpha + \tau D_i + \beta_1 (X_i - c) + \beta_2 D_i \cdot (X_i - c) + \epsilon_i\]| 其中样本限制在带宽 $h$ 内:$ | X_i - c | \leq h$ |
这种方法允许断点两侧有不同的斜率,更灵活地拟合数据。
RDD分析的第一步应该是图形检验:
良好的RDD图形应该显示:
在现实中,并非所有个体都严格遵循断点规则。模糊RDD处理这种不完全遵从的情况:
\[P(D_i = 1 | X_i = c^+) - P(D_i = 1 | X_i = c^-) = \pi < 1\]其中 $\pi$ 是断点处处理概率的跳跃。
模糊RDD可以理解为使用断点指示作为工具变量:
第一阶段: \(D_i = \gamma_0 + \gamma_1 Z_i + \gamma_2 (X_i - c) + \gamma_3 Z_i \cdot (X_i - c) + \nu_i\)
第二阶段: \(Y_i = \alpha + \tau \hat{D}_i + \beta_1 (X_i - c) + \beta_2 Z_i \cdot (X_i - c) + \epsilon_i\)
其中 $Z_i = \mathbb{1}(X_i \geq c)$ 是工具变量。
模糊RDD识别的是局部平均处理效应(LATE):
\[\tau_{Fuzzy} = \frac{\lim_{x \downarrow c} E[Y_i | X_i = x] - \lim_{x \uparrow c} E[Y_i | X_i = x]}{\lim_{x \downarrow c} E[D_i | X_i = x] - \lim_{x \uparrow c} E[D_i | X_i = x]}\]这个效应仅对”遵从者”(compliers)有效——即那些因为超过断点而接受处理的个体。
带宽选择涉及偏差-方差权衡:
MSE最优带宽(Imbens-Kalyanaraman): \(h_{IK} = \left( \frac{2\sigma^2(c)}{f(c) \cdot (m_+''(c) - m_-''(c))^2} \right)^{1/5} \cdot n^{-1/5}\)
覆盖误差率最优带宽(Calonico-Cattaneo-Titiunik): 考虑有限样本偏差修正,提供更准确的置信区间
交叉验证方法: 通过留一交叉验证选择预测误差最小的带宽
检验运行变量是否被操纵是RDD有效性的关键:
密度检验(McCrary Test) \(\hat{\theta} = \ln \hat{f}_+ - \ln \hat{f}_-\) 其中 $\hat{f}+$ 和 $\hat{f}-$ 是断点两侧的密度估计
协变量平衡检验 对预定协变量进行RDD分析,检验是否存在显著跳跃
排序检验 检查运行变量的分布是否存在异常模式
考虑使用RDD评估重点大学录取对学生未来收入的影响:
设定:
分析步骤:
收入(万元)
40 | 。。
| 。 。
30 | 。 |。
| 。 | 。
20 |。 | 。
|________|____。
580 600 620
高考分数
局部线性回归 在带宽 $h = 20$ 分内估计: \(\tau_{RDD} = 8.5万元 \quad (SE = 2.1)\)
研究现任者在选举中的优势:
设定:
关键发现:
拼多多实施了基于累计消费金额的用户等级制度,不同等级享受不同的优惠和服务。我们使用RDD评估升级到”黄金会员”(消费满1000元)对用户后续消费行为的影响。
后续消费(元)
500 | 。。
| 。 。
400 | 。 |。
| 。 | 。。
300 |。 | 。
|_________|_____。
900 1000 1100
累计消费金额(元)
Sharp RDD估计 由于会员升级是自动的,这是一个精确断点设计:
\[Y_i = 320 + 85 \cdot D_i + 0.12(X_i - 1000) + 0.05 \cdot D_i(X_i - 1000)\]效应估计:$\tau = 85$元($SE = 18$)
断点回归设计是因果推断工具箱中的有力武器,特别适用于基于明确规则的政策评估。本章的关键要点:
Sharp RDD因果效应: \(\tau_{Sharp} = \lim_{x \downarrow c} E[Y|X=x] - \lim_{x \uparrow c} E[Y|X=x]\)
Fuzzy RDD因果效应: \(\tau_{Fuzzy} = \frac{\text{结果变量跳跃}}{\text{处理概率跳跃}}\)
最优带宽(IK方法): \(h_{opt} \propto n^{-1/5}\)
RDD的优势在于其准实验性质和结果的可信度,但也要注意其局限性:仅识别局部效应、需要大样本、易受操纵影响。掌握RDD不仅需要理解统计方法,更需要对制度背景的深入了解。
练习7.1 判断以下场景是否适合使用RDD分析,如果适合,指出运行变量和断点:
a) 评估最低工资法对就业的影响
b) 分析优惠券(满100减20)对消费的影响
c) 研究退休(65岁)对健康的影响
d) 评估随机分配的培训项目效果
练习7.2 某公司规定月销售额达到50万的销售员可获得额外奖金。数据显示:
这7万的差异能否解释为奖金的因果效应?需要检验什么?
练习7.3 使用以下RDD回归结果,计算处理效应:
Y = 50 + 20D + 2(X-c) + 3D(X-c), 带宽h=10
其中D是处理指示变量,c是断点。
练习7.4 某在线教育平台发现,学习时长超过100小时的用户可获得”认证学员”标识。你想评估这个标识对用户完课率的影响。设计一个完整的RDD分析方案,包括: a) 可能的威胁和解决方案 b) 需要进行的稳健性检验 c) 如何解释结果的局限性
练习7.5 你在分析某电商平台的会员制度(消费满1000元自动升级),发现:
请解释: a) 为什么会出现Fuzzy RDD的情况? b) 两个估计值差异的含义 c) 哪个更适合政策制定?
练习7.6 设计一个利用地理断点的RDD研究。要求:
练习7.7 某研究使用RDD评估大学录取(分数线600分)对收入的影响,发现:
如何解释这个结果?应该报告哪个估计?
陷阱:忽视个体可能精确控制运行变量越过断点
症状:
调试技巧:
检查清单:
□ McCrary密度检验 p > 0.10
□ 协变量平衡检验全部通过
□ 甜甜圈RDD结果稳定
□ 检查制度细节是否允许操纵
案例:学生可能通过补考刚好达到60分及格线
陷阱:尝试多个带宽后只报告显著的结果
正确做法:
示例代码逻辑:
主分析:h* = optimal_bandwidth()
稳健性:[0.5h*, 0.75h*, h*, 1.25h*, 1.5h*]
陷阱:假设所有RDD都是精确的
识别方法:
后果:Sharp RDD用于Fuzzy情况会低估真实效应
陷阱:全局高阶多项式可能产生误导性结果
建议:
陷阱:将断点处的LATE解释为ATE
正确理解:
陷阱:存在多个断点时分析混乱
解决方案:
陷阱:断点实施时间与其他政策变化重合
检验方法:
陷阱:控制受处理影响的协变量
原则:
# 1. 密度检验
density_test = mccrary_test(running_var, cutoff)
# 2. 协变量平衡
for covariate in predetermined_vars:
balance_test = rdd_estimate(covariate ~ running_var)
# 3. 带宽选择
h_ik = ik_bandwidth(Y, X, cutoff)
h_cct = cct_bandwidth(Y, X, cutoff)
# 4. 敏感性分析
bandwidths = [0.5*h, 0.75*h, h, 1.25*h, 1.5*h]
results = [rdd_estimate(Y, X, c, bw) for bw in bandwidths]
# 5. 图形输出
plot_rdd(Y, X, cutoff, bandwidth=h, nbins=20)
记住:RDD的可信度很大程度上依赖于制度细节的理解和图形证据的说服力,而非复杂的计量技术。