第七章:断点回归设计
断点回归设计(Regression Discontinuity Design, RDD)是因果推断中最接近随机实验的准实验方法之一。当处理分配基于某个连续变量是否超过特定阈值时,RDD利用阈值附近个体的"准随机"分配来识别因果效应。这种方法在政策评估、教育研究和商业决策中有着广泛应用,因为许多实际决策规则都基于明确的阈值标准。
本章将系统介绍RDD的理论基础、实施方法和实践应用。我们将学习如何在精确和模糊的处理分配场景下应用RDD,掌握带宽选择和稳健性检验的关键技术,并通过实际案例理解RDD的优势与局限。
7.1 精确断点回归(Sharp RDD)
7.1.1 基本设定
精确断点回归适用于处理完全由运行变量(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]$$
7.1.2 识别假设
Sharp RDD的关键识别假设包括:
-
连续性假设:潜在结果的条件期望在断点处连续 $$E[Y_i(0) | X_i = c^+] = E[Y_i(0) | X_i = c^-]$$
-
局部随机化:在断点附近,个体无法精确操纵运行变量
-
单调性:处理分配在断点处严格变化
运行变量分布图示:
|
密 | 。。。
度 | 。 。
|。 。
|。 。。
|____________。___
c 断点
7.1.3 局部线性回归估计
实践中,我们通常使用局部线性回归来估计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$
这种方法允许断点两侧有不同的斜率,更灵活地拟合数据。
7.1.4 图形分析的重要性
RDD分析的第一步应该是图形检验:
- 结果变量在断点处的跳跃
- 运行变量的密度检验(McCrary检验)
- 协变量的平衡性检验
良好的RDD图形应该显示:
- 断点处明显的跳跃
- 运行变量密度无异常堆积
- 其他协变量在断点处连续
7.2 模糊断点回归(Fuzzy RDD)
7.2.1 不完全遵从的处理
在现实中,并非所有个体都严格遵循断点规则。模糊RDD处理这种不完全遵从的情况: $$P(D_i = 1 | X_i = c^+) - P(D_i = 1 | X_i = c^-) = \pi < 1$$ 其中 $\pi$ 是断点处处理概率的跳跃。
7.2.2 作为工具变量的RDD
模糊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)$ 是工具变量。
7.2.3 识别与解释
模糊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)有效——即那些因为超过断点而接受处理的个体。
7.3 带宽选择与稳健性检验
7.3.1 最优带宽选择
带宽选择涉及偏差-方差权衡:
-
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): 考虑有限样本偏差修正,提供更准确的置信区间
-
交叉验证方法: 通过留一交叉验证选择预测误差最小的带宽
7.3.2 稳健性检验清单
-
带宽敏感性分析 - 使用多个带宽(如0.5h, h, 1.5h, 2h) - 绘制不同带宽下的估计值
-
多项式阶数检验 - 比较线性、二次、三次多项式 - 检查高阶项的显著性
-
安慰剂检验 - 在非断点处进行RDD分析 - 检验预定协变量的跳跃
-
甜甜圈RDD - 排除断点附近的观测值 - 检验对可能操纵的稳健性
7.3.3 操纵检验
检验运行变量是否被操纵是RDD有效性的关键:
-
密度检验(McCrary Test) $$\hat{\theta} = \ln \hat{f}_+ - \ln \hat{f}_-$$ 其中 $\hat{f}_+$ 和 $\hat{f}_-$ 是断点两侧的密度估计
-
协变量平衡检验 对预定协变量进行RDD分析,检验是否存在显著跳跃
-
排序检验 检查运行变量的分布是否存在异常模式
7.4 应用案例分析
7.4.1 教育政策评估:高考录取线的因果效应
考虑使用RDD评估重点大学录取对学生未来收入的影响:
设定:
- 运行变量:高考分数 $X_i$
- 断点:重点大学录取线 $c = 600$
- 处理:进入重点大学 $D_i$
- 结果:毕业5年后年收入 $Y_i$
分析步骤:
- 图形检验
收入(万元)
40 | 。。
| 。 。
30 | 。 |。
| 。 | 。
20 |。 | 。
|________|____。
580 600 620
高考分数
-
局部线性回归 在带宽 $h = 20$ 分内估计: $$\tau_{RDD} = 8.5万元 \quad (SE = 2.1)$$
-
稳健性检验 - 不同带宽:$h \in [10, 30]$,效应稳定在7-10万元 - 密度检验:$p = 0.43$,无操纵证据 - 协变量平衡:家庭背景、性别等无显著跳跃
7.4.2 选举研究:在职优势
研究现任者在选举中的优势:
设定:
- 运行变量:上次选举得票率 $X_i$
- 断点:$c = 50\%$
- 处理:成为现任者
- 结果:下次选举得票率
关键发现:
- 勉强当选的候选人vs勉强落选的候选人几乎相同
- 现任者优势约为8个百分点
- 效应在不同政党、地区间存在异质性
7.5 行业案例:拼多多用户等级制度的效果分析
背景
拼多多实施了基于累计消费金额的用户等级制度,不同等级享受不同的优惠和服务。我们使用RDD评估升级到"黄金会员"(消费满1000元)对用户后续消费行为的影响。
数据与设定
- 运行变量:用户累计消费金额 $X_i$
- 断点:$c = 1000$元
- 处理:成为黄金会员,享受专属优惠
- 结果变量:
- 升级后30天内消费金额
- 购买频次
- 客单价
分析过程
- 初步图形分析
后续消费(元)
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$)
-
机制分析 通过分析不同结果变量:
- 购买频次增加:$\Delta f = 2.3$次/月
- 客单价提升:$\Delta p = 12$元
- 品类扩展:新品类购买概率提升15%
业务洞察
-
即时效应vs持续效应 - 短期(7天):效应最强,增量150元 - 中期(30天):稳定在85元 - 长期(90天):衰减至40元
-
异质性分析 - 价格敏感用户:效应更强(120元) - 高频用户:效应较弱(50元) - 新用户vs老用户:新用户响应更积极
-
策略优化建议 - 动态调整门槛:基于用户特征个性化 - 分级激励:多个断点形成递进激励 - 配合营销活动:在断点附近推送优惠
实施挑战与解决方案
-
操纵问题 - 发现:临近1000元的订单异常增多 - 解决:采用甜甜圈RDD,排除995-1005元区间
-
溢出效应 - 问题:用户可能延迟消费等待升级 - 处理:分析断点前的消费模式变化
-
多重断点 - 挑战:银牌(500)、金牌(1000)、钻石(2000)多个等级 - 方法:分别估计各断点效应,注意样本重叠
7.6 本章小结
断点回归设计是因果推断工具箱中的有力武器,特别适用于基于明确规则的政策评估。本章的关键要点:
核心概念
-
RDD的识别策略 - 利用断点处的局部随机化 - 连续性假设是关键 - 图形分析先于统计分析
-
两种RDD类型 - Sharp RDD:处理完全由断点决定,$D_i = \mathbb{1}(X_i \geq c)$ - Fuzzy RDD:断点影响处理概率,需要IV方法
-
估计方法 - 局部线性回归:$Y_i = \alpha + \tau D_i + \beta_1(X_i-c) + \beta_2 D_i(X_i-c) + \epsilon_i$ - 带宽选择的偏差-方差权衡 - 稳健性检验的系统方法
关键公式汇总
-
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.7 练习题
基础题
练习7.1 判断以下场景是否适合使用RDD分析,如果适合,指出运行变量和断点:
a) 评估最低工资法对就业的影响
b) 分析优惠券(满100减20)对消费的影响
c) 研究退休(65岁)对健康的影响
d) 评估随机分配的培训项目效果
提示
考虑是否存在明确的分配规则和断点。
答案
a) 不太适合 - 最低工资通常全面实施,缺少明确的断点 b) 适合 - 运行变量:消费金额,断点:100元 c) 适合 - 运行变量:年龄,断点:65岁 d) 不适合 - 随机分配不需要RDD,应使用简单比较
练习7.2 某公司规定月销售额达到50万的销售员可获得额外奖金。数据显示:
- 49-50万区间:平均下月销售额55万
- 50-51万区间:平均下月销售额62万
这7万的差异能否解释为奖金的因果效应?需要检验什么?
提示
考虑RDD的关键假设和可能的违反情况。
答案
不能直接解释为因果效应。需要检验:
- 密度检验:50万处是否有异常堆积(操纵)
- 协变量平衡:员工特征在断点处是否连续
- 带宽选择:使用更窄的带宽重新估计
- 时间趋势:检查断点实施前是否存在类似跳跃 关键担忧:销售员可能操纵销售额刚好达到50万。
练习7.3 使用以下RDD回归结果,计算处理效应:
Y = 50 + 20D + 2(X-c) + 3D(X-c), 带宽h=10
其中D是处理指示变量,c是断点。
提示
在断点处,(X-c) = 0。
答案
处理效应 τ = 20 解释:在断点c处,(X-c) = 0,因此:
- 控制组(D=0):E[Y|X=c-] = 50
- 处理组(D=1):E[Y|X=c+] = 50 + 20 = 70
- 因果效应:τ = 70 - 50 = 20
挑战题
练习7.4 某在线教育平台发现,学习时长超过100小时的用户可获得"认证学员"标识。你想评估这个标识对用户完课率的影响。设计一个完整的RDD分析方案,包括: a) 可能的威胁和解决方案 b) 需要进行的稳健性检验 c) 如何解释结果的局限性
提示
考虑用户行为的内生性和标识的信号价值。
答案
分析方案:
a) 可能的威胁和解决方案:
- 操纵:用户可能刷课时 → 检查99-101小时密度分布
- 选择性:主动学习者更易超过100小时 → 使用窄带宽
- 混杂时间趋势:平台同时推出其他激励 → 检查政策实施时间
b) 稳健性检验:
- 多带宽分析:h ∈ [5, 20]小时
- 甜甜圈RDD:排除98-102小时
- 安慰剂检验:在80、120小时测试
- 协变量检验:用户特征(年龄、教育)的连续性
c) 结果局限性:
- LATE:仅对100小时附近用户有效
- 外部效度:不能推广到所有用户
- 机制不明:可能是动机效应或信号效应
- 短期vs长期:需追踪长期影响
练习7.5 你在分析某电商平台的会员制度(消费满1000元自动升级),发现:
- Sharp RDD估计:τ = 100元(后续月消费增加)
- Fuzzy RDD估计:τ = 150元
请解释: a) 为什么会出现Fuzzy RDD的情况? b) 两个估计值差异的含义 c) 哪个更适合政策制定?
提示
考虑处理分配的不完美遵从和不同人群的异质性。
答案
a) Fuzzy RDD的原因:
- 系统延迟:达到1000元后升级有延迟
- 用户认知:部分用户不知道已升级
- 账户问题:某些账户类型不参与升级
b) 估计值差异的含义:
- Sharp RDD = 100:意向处理效应(ITT)
- Fuzzy RDD = 150:对实际升级者的效应(LATE)
- 比例:升级率 = 100/150 = 67%
- 解释:1/3的符合条件用户未实际"接受处理"
c) 政策制定考虑:
- 评估现有制度:用Sharp RDD(实际影响)
- 优化制度设计:用Fuzzy RDD(潜在影响)
- 成本效益分析:考虑提高升级率的成本vs收益
- 建议:解决技术问题提高自动升级率,可增加50%效果
练习7.6 设计一个利用地理断点的RDD研究。要求:
- 明确研究问题和因果效应
- 说明识别策略
- 讨论可能的挑战
提示
考虑行政边界、政策区域、自然边界等。
答案
研究设计:评估经济特区政策对企业生产率的影响
研究问题: 深圳前海自贸区的优惠政策是否提高了区内企业生产率?
识别策略:
- 运行变量:企业到边界的距离(负值表示区外)
- 断点:边界(距离=0)
- 处理:享受税收优惠、简化审批等政策
- 结果:全要素生产率(TFP)
RDD设定: $$TFP_i = \alpha + \tau \cdot Inside_i + f(distance_i) + \epsilon_i$$
关键假设检验:
- 企业选址的准随机性(边界附近)
- 其他特征的连续性
可能的挑战:
-
空间溢出效应 - 问题:区外企业可能受益于邻近效应 - 解决:估计不同距离的异质性效应
-
选择性迁移 - 问题:高生产率企业可能迁入区内 - 解决:使用政策实施前就存在的企业
-
多维度距离 - 问题:不规则边界导致距离定义困难 - 解决:使用最短欧氏距离或分段分析
-
混合政策 - 问题:特区可能有多项政策同时实施 - 解决:识别总效应,通过异质性分析分解
预期贡献:
- 提供特区政策效果的因果证据
- 指导优惠政策的空间设计
- 评估政策扩展的潜在收益
练习7.7 某研究使用RDD评估大学录取(分数线600分)对收入的影响,发现:
- 带宽20分:效应8万元(显著)
- 带宽10分:效应12万元(显著)
- 带宽5分:效应18万元(不显著)
如何解释这个结果?应该报告哪个估计?
提示
考虑偏差-方差权衡和样本量的影响。
答案
结果解释:
-
效应递增的原因: - 偏差减少:窄带宽降低了函数形式误设的偏差 - 局部性增强:更接近断点的比较更可信 - 可能存在异质性:断点附近效应确实更大
-
显著性变化: - 样本量减少:5分带宽样本太少,标准误增大 - 统计功效不足:真实效应可能存在但检测不到
-
报告策略: - 主结果:报告10分带宽(平衡偏差和方差) - 稳健性:展示多个带宽的结果 - 最优带宽:使用IK或CCT方法计算
建议的报告方式: "使用最优带宽(IK方法,h*=11.5分)估计,大学录取使毕业生年收入增加11.2万元(SE=3.1,p<0.01)。稳健性检验显示,在合理带宽范围内(8-15分),效应稳定在10-13万元之间。"
额外考虑:
- 检查协变量平衡性在不同带宽下的表现
- 进行安慰剂检验验证5分带宽的结果
- 考虑使用局部二次多项式提高精度
7.8 常见陷阱与错误
1. 操纵运行变量
陷阱:忽视个体可能精确控制运行变量越过断点
症状:
- 断点处密度不连续(堆积或缺失)
- 某些协变量在断点处跳跃
- 结果对带宽极度敏感
调试技巧:
检查清单:
□ McCrary密度检验 p > 0.10
□ 协变量平衡检验全部通过
□ 甜甜圈RDD结果稳定
□ 检查制度细节是否允许操纵
案例:学生可能通过补考刚好达到60分及格线
2. 带宽选择偏差
陷阱:尝试多个带宽后只报告显著的结果
正确做法:
- 先确定最优带宽(IK或CCT方法)
- 报告主要结果
- 展示带宽敏感性分析
- 预先注册分析计划
示例代码逻辑:
主分析:h* = optimal_bandwidth()
稳健性:[0.5h*, 0.75h*, h*, 1.25h*, 1.5h*]
3. 忽视模糊断点
陷阱:假设所有RDD都是精确的
识别方法:
- 绘制处理概率vs运行变量图
- 检查断点处是否100%跳跃
- 了解制度实施细节
后果:Sharp RDD用于Fuzzy情况会低估真实效应
4. 错误的函数形式
陷阱:全局高阶多项式可能产生误导性结果
建议:
- 局部线性/二次为主
- 避免高于3阶的多项式
- 允许断点两侧不同斜率
- 图形检验优先于参数估计
5. 外推过度
陷阱:将断点处的LATE解释为ATE
正确理解:
- RDD估计的是局部效应
- 仅对断点附近个体有效
- 不能推广到远离断点的群体
- 政策含义需谨慎
6. 多重断点处理不当
陷阱:存在多个断点时分析混乱
解决方案:
- 分别分析每个断点
- 注意样本重叠问题
- 检查不同断点间的干扰
- 考虑使用不同运行变量
7. 时间混淆
陷阱:断点实施时间与其他政策变化重合
检验方法:
- 事件研究图
- 使用实施前数据做安慰剂检验
- 控制时间趋势
8. 协变量使用错误
陷阱:控制受处理影响的协变量
原则:
- 只控制预定协变量
- 协变量主要用于提高精度
- 不应改变点估计(如果改变,说明有问题)
7.9 最佳实践检查清单
设计阶段
- [ ] 明确断点规则
- 书面文件确认分配规则
- 了解实施细节和例外情况
-
确认规则的执行严格程度
-
[ ] 评估可行性
- 样本量是否充足(断点附近至少几百个观测)
- 运行变量是否连续且密度足够
-
是否存在操纵的激励和能力
-
[ ] 识别假设检验计划
- 预定需要检验的协变量
- 确定带宽选择方法
- 计划稳健性检验
实施阶段
- [ ] 图形分析优先
- 原始数据散点图
- 分组均值图(bin scatter plot)
- 局部多项式平滑图
-
密度分布图
-
[ ] 基础检验
- McCrary密度检验
- 协变量平衡性检验
-
安慰剂断点检验
-
[ ] 主要分析
- 使用最优带宽方法
- 报告第一阶段(如果是Fuzzy)
-
计算稳健标准误
-
[ ] 稳健性检验
- 多个带宽
- 不同多项式阶数
- 甜甜圈RDD
- 不同的核函数
报告阶段
- [ ] 透明度
- 报告所有尝试的规格
- 展示完整的图形证据
-
讨论识别假设的合理性
-
[ ] 完整性
- 主要效应估计
- 标准误和置信区间
- 样本量和有效观测数
-
第一阶段结果(Fuzzy RDD)
-
[ ] 解释恰当
- 强调局部性质
- 讨论外部有效性
- 说明政策含义的局限
进阶考虑
- [ ] 异质性分析
- 按重要特征分组
- 交互效应检验
-
分位数RDD
-
[ ] 机制探索
- 多个结果变量
- 中介分析(谨慎)
-
动态效应
-
[ ] 扩展方法
- RD-DID(如有面板数据)
- 空间RDD
- 多维RDD
常用诊断代码框架
# 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的可信度很大程度上依赖于制度细节的理解和图形证据的说服力,而非复杂的计量技术。