RDD-回归不连续(RDD)
回归不连续设计(Regression Discontinuity Design, RDD)是一类基于阈值分配机制的准实验因果推断方法。当处理变量由运行变量是否跨过断点所决定时,断点附近样本在可观测和不可观测因素上可近似视为可比,从而可以识别局部因果效应。当前系统实现的是 Sha…
55-RDD-回归不连续(RDD)
1. 方法概述
回归不连续设计(Regression Discontinuity Design, RDD)是一类基于阈值分配机制的准实验因果推断方法。当处理变量由运行变量是否跨过断点所决定时,断点附近样本在可观测和不可观测因素上可近似视为可比,从而可以识别局部因果效应。当前系统实现的是 Sharp RDD(锐断点设计),适用于“是否接受政策/补贴/资格”由阈值严格决定的研究场景。
设样本为
$$ \mathcal{D}=\{(x_i,y_i)\}_{i=1}^{n},\quad x_i\in\mathbb{R},\ y_i\in\mathbb{R} \tag{1} $$
其中,\(x_i\) 为运行变量(running variable),\(y_i\) 为结果变量(outcome)。
2. 识别框架与处理分配
设断点为 \(c\),Sharp RDD 的处理分配规则为
$$ D_i=\mathbf{1}(x_i\ge c) \tag{2} $$
在连续性假设下,断点处局部平均处理效应(LATE)定义为
$$ \tau=\lim_{x\to c^+}\mathbb{E}[Y\mid X=x]-\lim_{x\to c^-}\mathbb{E}[Y\mid X=x] \tag{3} $$
为便于估计,常将运行变量中心化:
$$ \tilde x_i=x_i-c \tag{4} $$
3. 局部多项式估计
系统在带宽 \(h\) 内分别对断点左右两侧进行核加权局部多项式回归。设多项式阶数为 \(p\),左侧与右侧的目标函数分别为
$$ \hat\beta_-= \arg\min_{\beta_-} \sum_{i:\,-h\le \tilde x_i<0} K\!\left(\frac{\tilde x_i}{h}\right) \left(y_i-\sum_{j=0}^{p}\beta_{-,j}\tilde x_i^j\right)^2 \tag{5} $$
$$ \hat\beta_+= \arg\min_{\beta_+} \sum_{i:\,0\le \tilde x_i\le h} K\!\left(\frac{\tilde x_i}{h}\right) \left(y_i-\sum_{j=0}^{p}\beta_{+,j}\tilde x_i^j\right)^2 \tag{6} $$
断点处左右极限由截距项给出,故估计量为
$$ \hat\tau=\hat\beta_{+,0}-\hat\beta_{-,0} \tag{7} $$
系统采用加权最小二乘(WLS)求解,若权重为 \(w_i\),对应实现为
$$ X_i^*=\sqrt{w_i}X_i,\quad y_i^*=\sqrt{w_i}y_i \tag{8} $$
在左右侧独立得到截距标准误后,处理效应标准误近似为
$$ \mathrm{SE}(\hat\tau)=\sqrt{\mathrm{SE}(\hat\beta_{+,0})^2+\mathrm{SE}(\hat\beta_{-,0})^2} \tag{9} $$
统计检验量为
$$ t=\frac{\hat\tau}{\mathrm{SE}(\hat\tau)} \tag{10} $$
双侧 p 值为
$$ p=2\left(1-\Phi\left(|t|\right)\right) \tag{11} $$
系统默认给出 95% 置信区间:
$$ \hat\tau\pm 1.96\cdot \mathrm{SE}(\hat\tau) \tag{12} $$
4. 核函数与带宽
系统支持三种核函数:
三角核 $$ K(u)=\max(1-|u|,0) \tag{13} $$
Epanechnikov 核 $$ K(u)=\max\left(0,\frac{3}{4}(1-u^2)\right) \tag{14} $$
均匀核 $$ K(u)=\mathbf{1}(|u|\le 1) \tag{15} $$
带宽选择支持 IK、CV、手动指定三种方式。可记一般形式为
$$ h=\arg\min_{b\in\mathcal{H}}\mathcal{J}(b) \tag{16} $$
其中,IK 对应最优带宽准则,CV 对应预测误差最小化,手动方式由研究者给定 \(h\)。
系统还进行带宽稳健性分析(默认倍数 \(m\in\{0.5,0.75,1.0,1.25,1.5\}\)):
$$ h_m=m\cdot h \tag{17} $$
并在每个 \(h_m\) 下重复估计 \(\hat\tau(h_m)\)。
5. McCrary 密度连续性检验
为检验运行变量在断点处是否存在操纵,系统进行密度连续性检验。记断点左右密度估计为 \(\hat f_-(c),\hat f_+(c)\),则对数密度差为
$$ \Delta=\log\hat f_+(c)-\log\hat f_-(c) \tag{18} $$
在简化近似下,统计量为
$$ Z=\frac{\Delta}{\sqrt{1/n_-+1/n_+}} \tag{19} $$
其中 \(n_-,n_+\) 为断点附近左右样本数。双侧 p 值为
$$ p_{mc}=2\left(1-\Phi(|Z|)\right) \tag{20} $$
若 \(p_{mc}>0.05\),通常认为断点处密度连续,不支持显著操纵证据。
6. 协变量平衡检验
对于协变量 \(Z_k\),系统比较断点附近左右侧均值:
$$ \Delta_k=\bar Z_{k,+}-\bar Z_{k,-} \tag{21} $$
并进行 Welch t 检验。若多数协变量在断点处差异不显著,可增强局部可比性的可信度。
7. 与系统一致的实现流程
系统实际流程可概括为:
- 读取数据并进行缺失值过滤;
- 校验断点是否位于运行变量取值范围内;
- 根据带宽策略计算 \(h\),并保证断点两侧最小样本数;
- 在 \(|x-c|\le h\) 内做左右局部回归并估计 \(\hat\tau\);
- 输出 McCrary 检验、带宽稳健性、协变量平衡检验;
- 导出 Excel 与图表,支持复现脚本导出。
8. 输出结果说明(Excel 与图表)
系统在 results/时间戳目录/ 下输出一个 xlsx 和多张图。
8.1 Excel 工作表
Parameters:参数设置与输入信息;Estimation:\(\hat\tau\)、SE、置信区间、t、p、断点左右截距、带宽等;Diagnostics:样本规模与 McCrary 检验结果;Forecast:带宽内样本的拟合值(含 left/right 标识);Robustness:不同带宽倍数下的估计结果;CovariateBalance:协变量平衡检验结果;Charts:图表文件路径索引。
8.2 图表文件
系统默认输出如下图表:
01_rd_plot.png:RDD 散点与左右拟合线;02_bandwidth_sensitivity.png:带宽敏感性;03_mccrary_test.png:密度连续性检验;04_covariate_balance.png:协变量平衡(有协变量时);05_residuals.png:残差分布与 Q-Q 图。
9. 论文写作模板
本文采用 Sharp RDD 识别政策阈值附近的局部因果效应。处理变量由运行变量是否跨越断点决定(式(2)),并通过断点左右条件期望差异定义处理效应(式(3))。在估计层面,使用核加权局部多项式回归分别拟合断点两侧函数(式(5)–式(6)),以截距差作为处理效应估计量(式(7)),并报告标准误、t 统计量、p 值与置信区间(式(9)–式(12))。进一步地,通过 McCrary 密度连续性检验(式(18)–式(20))和协变量平衡检验(式(21))验证识别假设,并使用多带宽稳健性分析(式(17))评估估计结果稳定性。
10. 实现说明与注意事项
- 断点值必须位于运行变量取值区间内部,且断点两侧应有足够样本;
- RDD 识别的是断点附近的局部效应,不等同于全样本平均处理效应;
- 带宽过大可能引入偏差,带宽过小可能导致方差上升;
- 建议在正文报告主带宽结果,在附录报告稳健性和诊断图表。
11. 单篇终审补充
11.1 图题与表题对齐建议
- 本文档应优先对应真实算法目录
具体的算法2/RDD-回归不连续(RDD)。 - 代表性结果目录建议绑定
具体的算法2/RDD-回归不连续(RDD)/results/RDD分析结果_20260329_165227_271695。 - 表题应直接对应
RDD分析结果_20260329_165227_271695.xlsx的真实工作表:Parameters、Estimation、Diagnostics、Forecast、Robustness、CovariateBalance、Charts。 - 图题应优先绑定该目录下真实图:
01_rd_plot.png、02_bandwidth_sensitivity.png、03_mccrary_test.png、04_covariate_balance.png、05_residuals.png。
11.2 终审说明
- 当前 RDD 的正式结果目录已经可以形成“xlsx + 图”闭环。
- 复现脚本可对应
results/repro_rdd_template_20260329_165324.py,其SRC_FILE实际写为rdd_window1_input.csv,属于“results根目录脚本同目录 CSV 快照复现”口径。 - 因此论文中若写复现说明,应区分“时间戳结果目录中的正式导出”与“
results根目录中的复现脚本/输入 CSV”,不要将其误写成repro_inputs结构。
11.3 全量强化补充
- 当前 RDD 文档应绑定真实算法目录
具体的算法2/RDD-回归不连续(RDD),代表性主结果目录为具体的算法2/RDD-回归不连续(RDD)/results/RDD分析结果_20260329_165227_271695。 - 该主目录内工作簿为
RDD分析结果_20260329_165227_271695.xlsx,真实工作表为Parameters、Estimation、Diagnostics、Forecast、Robustness、CovariateBalance、Charts。 - 主图文件与主工作簿同层放置,分别为
01_rd_plot.png、02_bandwidth_sensitivity.png、03_mccrary_test.png、04_covariate_balance.png、05_residuals.png。当前主结果目录没有单独charts/文件夹。 results根目录还平铺保留了同名图片、输入 CSVrdd_window1_input.csv、多份repro_rdd_template_*.py和多份 pytest 结果簿。这说明 RDD 当前采用“时间戳结果目录 + results 根目录复现入口”的分层结构。- 当前主复现入口为
具体的算法2/RDD-回归不连续(RDD)/results/repro_rdd_template_20260329_165324.py,脚本关键输入写法是SRC_FILE = 'rdd_window1_input.csv'。这属于results根目录脚本同目录 CSV 快照复现,不是repro_inputs结构。 - 因此正文与附录必须明确区分两层证据:
RDD分析结果_20260329_165227_271695/用于承接正式结果簿和正式图,results/根目录下的repro_rdd_template_20260329_165324.py + rdd_window1_input.csv用于承接复现实验。 - 若论文写“程序自动导出可移植复现目录”,这里应修正为“当前模块的复现脚本与输入快照位于
results根目录,而非时间戳结果目录内部”。这是与 CODAS、ANP、FastText 等算法的重要差异。
12. 软件实现核查补充(2026-07)
- 当前实现的主结果目录应写作
具体的算法2/RDD-回归不连续(RDD)/results/RDD分析结果_20260329_165227_271695,主工作簿为RDD分析结果_20260329_165227_271695.xlsx。 - 正文应围绕
Parameters、Estimation、Diagnostics、Forecast、Robustness、CovariateBalance、Charts来写,图则对应01_rd_plot.png、02_bandwidth_sensitivity.png、03_mccrary_test.png、04_covariate_balance.png、05_residuals.png。 results根目录中的repro_rdd_template_20260329_165324.py + rdd_window1_input.csv是复现入口,不应混成主结果目录产物。- 这类时间戳目录与根目录复现脚本分离的结构,应在附录中明确写出,避免用户误以为整个工程只有单目录输出。