RobustRegression-鲁棒回归
鲁棒回归(Robust Regression)用于在存在离群点、重尾噪声或异方差扰动时,获得比普通最小二乘(OLS)更稳定的参数估计。系统支持三类常用方法:
RobustRegression-鲁棒回归
1. 方法概述
鲁棒回归(Robust Regression)用于在存在离群点、重尾噪声或异方差扰动时,获得比普通最小二乘(OLS)更稳定的参数估计。系统支持三类常用方法:
- Huber 回归(连续可导的分段损失)
- RANSAC 回归(随机采样一致性,先识别内点)
- Theil-Sen 回归(基于中位数斜率的稳健估计)
设数据集为
$$ \mathcal{D}=\{(x_i,y_i)\}_{i=1}^{n},\quad x_i\in\mathbb{R}^{p},\ y_i\in\mathbb{R} \tag{1} $$
线性模型写为
$$ y_i=\beta_0+x_i^\top\beta+\varepsilon_i \tag{2} $$
其中 \(\beta_0\) 为截距,\(\beta\) 为系数向量。
2. OLS 基线与鲁棒性动机
OLS 的目标函数为
$$ \min_{\beta_0,\beta}\sum_{i=1}^{n}(y_i-\beta_0-x_i^\top\beta)^2 \tag{3} $$
其平方损失对大残差敏感,因此在离群点存在时,参数可能明显偏移。鲁棒回归通过替换损失函数或样本选择机制降低异常样本影响。
3. Huber 回归
3.1 Huber 损失
记残差 \(r_i=y_i-\beta_0-x_i^\top\beta\),Huber 损失定义为
$$ \rho_\delta(r)= \begin{cases} \frac{1}{2}r^2, & |r|\le \delta\\ \delta\left(|r|-\frac{1}{2}\delta\right), & |r|>\delta \end{cases} \tag{4} $$
对应优化问题:
$$ \min_{\beta_0,\beta}\sum_{i=1}^{n}\rho_\delta(r_i)+\alpha\|\beta\|_2^2 \tag{5} $$
其中 \(\delta\)(程序中对应 epsilon)控制二次区与线性区切换阈值。
3.2 影响函数视角
Huber 的一阶导数为
$$ \psi_\delta(r)= \begin{cases} r, & |r|\le \delta\\ \delta\,\mathrm{sign}(r), & |r|>\delta \end{cases} \tag{6} $$
即大残差被“截断”影响,稳健性优于 OLS。
4. RANSAC 回归
RANSAC 的核心流程:
- 随机抽取最小子样本拟合候选模型;
- 计算所有样本残差,按阈值判定内点;
- 以内点数最多(或代价最小)模型为最优;
- 用最优内点集重拟合得到最终模型。
内点判定条件:
$$ |r_i|\le \tau \tag{7} $$
其中 \(\tau\) 为残差阈值(residual_threshold)。内点比例为
$$ \pi_{in}=\frac{N_{in}}{n} \tag{8} $$
RANSAC 常用于“少量强离群点”场景。
5. Theil-Sen 回归
对一元情形,Theil-Sen 斜率估计可写为所有点对斜率的中位数:
$$ \hat\beta_1=\mathrm{median}_{i<j}\frac{y_j-y_i}{x_j-x_i} \tag{9} $$
截距可取
$$ \hat\beta_0=\mathrm{median}_i\left(y_i-\hat\beta_1 x_i\right) \tag{10} $$
多元情形由子样本回归系数聚合(中位数)扩展实现,具备较强抗异常能力。
6. 训练/测试划分与预测
设训练比例为 \(q\in(0,1)\):
$$ n_{train}=\lfloor nq\rfloor,\qquad n_{test}=n-n_{train} \tag{11} $$
预测值记为 \(\hat y_i\),残差为
$$ e_i=y_i-\hat y_i \tag{12} $$
7. 评价指标
7.1 RMSE
$$ \mathrm{RMSE}=\sqrt{\frac{1}{m}\sum_{i=1}^{m}(y_i-\hat y_i)^2} \tag{13} $$
7.2 MAE
$$ \mathrm{MAE}=\frac{1}{m}\sum_{i=1}^{m}|y_i-\hat y_i| \tag{14} $$
7.3 决定系数
$$ R^2=1-\frac{\sum_{i=1}^{m}(y_i-\hat y_i)^2}{\sum_{i=1}^{m}(y_i-\bar y)^2} \tag{15} $$
其中 \(m\) 为评估样本数(通常优先 test 集)。
8. AIC/BIC(高斯残差近似)
记残差平方和 \(RSS=\sum e_i^2\),参数个数为 \(k\),则
$$ \mathrm{AIC}=n\ln\left(\frac{RSS}{n}\right)+2k \tag{16} $$
$$ \mathrm{BIC}=n\ln\left(\frac{RSS}{n}\right)+k\ln n \tag{17} $$
9. 残差诊断检验
9.1 Ljung-Box 自相关检验
设 \(\hat\rho_k\) 为残差序列在滞后 \(k\) 的样本自相关,
$$ Q=n(n+2)\sum_{k=1}^{h}\frac{\hat\rho_k^2}{n-k} \tag{18} $$
在原假设“无自相关”下,\(Q\) 近似服从 \(\chi^2_h\)。
9.2 Jarque-Bera 正态性检验
记偏度 \(S\)、峰度 \(K\),则
$$ JB=\frac{n}{6}\left(S^2+\frac{(K-3)^2}{4}\right) \tag{19} $$
原假设“残差服从正态分布”。
10. 预处理与特征工程(与程序一致)
系统在回归前支持:缺失处理、One-Hot、标准化/归一化、可选特征选择与降维。常见标准化形式:
$$ z_{ij}=\frac{x_{ij}-\mu_j}{\sigma_j} \tag{20} $$
11. 符号说明
| 符号 | 含义 |
|---|---|
| \(n\) | 总样本量 |
| \(p\) | 特征维度 |
| \(x_i,y_i\) | 第 \(i\) 个样本的特征与目标 |
| \(\beta_0,\beta\) | 截距与回归系数 |
| \(r_i,e_i\) | 残差 |
| \(\delta\) | Huber 损失阈值 |
| \(\tau\) | RANSAC 内点阈值 |
| \(N_{in}\) | 内点样本数 |
| \(k\) | 参数个数 |
| \(h\) | Ljung-Box 检验滞后阶 |
12. 输出结果与论文写作建议
系统输出图表通常包括:
- 预测值 vs 真实值散点图(
fit_vs_true) - 残差直方图(
resid_hist) - 残差 QQ 图(
resid_qq) - 残差 ACF 图(
resid_acf)
建议论文结构:
- 模型与参数设置(Huber/RANSAC/Theil-Sen)
- 主指标结果(RMSE/MAE/R²)
- 诊断结果(Ljung-Box、Jarque-Bera)
- 图形诊断与稳健性解释
13. 与当前程序导出 Sheet 一一对应说明
| Excel Sheet 名称 | 含义 | 关键字段 |
|---|---|---|
| Parameters | 运行参数与配置 | 参数、取值 |
| Estimation | 核心结果汇总 | n_obs、rmse、mae、r2、aic、bic、jb_p、lb_p |
| Coefficients | 系数表 | 变量、系数(可含 CI) |
| Diagnostics | 检验结果 | ljung_box、jarque_bera |
| Forecast | 预测与残差明细 | set、y、y_hat、resid、inlier |
| Charts | 图表路径清单 | 图表、路径 |
14. 与代码实现的对应关系
本算法在程序中由 具体的算法2/RobustRegression-鲁棒回归/core/calculator.py 实现,支持 HuberRegressor、RANSACRegressor、TheilSenRegressor 三条路径,并可导出系数表、诊断结果、预测明细和图表索引。论文写作时建议明确写出所用鲁棒回归类型,而不是笼统写“使用鲁棒回归”。
14.1 程序实际导出的工作表
Parameters:方法类型与超参数;Estimation:样本量、RMSE、MAE、\(R^2\)、AIC、BIC、诊断结果;Coefficients:变量系数,可含区间或 bootstrap 结果;Diagnostics:Ljung-Box、Jarque-Bera 等;Forecast:训练/测试预测、残差、内点标记等;Charts:图表路径清单。
14.2 程序实现中应写明的点
Huber、RANSAC、Theil-Sen三种方法的鲁棒机制不同,正文应与运行配置一致;RANSAC结果里的inlier标记可直接用于解释哪些样本被视为稳定内点;- 系数表在标准化开启时属于标准化特征空间,应避免直接当作原始量纲效应解释;
- 图表索引已给出相对路径,适合论文附录中统一列示。
15. 论文模板段落(可直接使用)
“本文采用鲁棒回归估计变量间关系,在存在异常样本的条件下提高参数估计稳定性。对于 Huber 回归,采用分段损失函数(式(4))并最小化加权目标(式(5));对于 RANSAC,通过内点阈值判定(式(7))识别稳定样本并重拟合;对于 Theil-Sen,使用中位数斜率思想获得稳健估计(式(9)–(10))。模型评估使用 RMSE、MAE 与 \(R^2\)(式(13)–(15)),并结合 AIC/BIC(式(16)–(17))与残差检验(式(18)–(19))进行诊断。结果表明,鲁棒回归在离群点存在时较 OLS 具有更好的稳健性与解释一致性。”
16. 注意事项
- 若离群点比例较低但影响强,优先尝试 RANSAC。
- 若希望连续可导且训练稳定,优先 Huber。
- Theil-Sen 在高维大样本下计算成本较高,应结合运行时间评估。
- 请优先结合残差图与检验结果解释,而非仅报告单一误差指标。
17. 单篇终审补充
17.1 图题与表题对齐建议
基于当前真实结果目录 具体的算法2/RobustRegression-鲁棒回归/results/鲁棒回归分析结果_20260329_165409,论文中建议采用以下图题:
图 1 鲁棒回归预测值与真实值拟合散点图
对应文件:fit_vs_true_20260329_165409.png。该图用于观察模型预测值与真实观测值的贴合程度,可与 RMSE、MAE、\(R^2\) 一并解释。
图 2 鲁棒回归残差分布直方图
对应文件:resid_hist_20260329_165409.png。该图用于检查残差集中程度和异常残差分布。
图 3 鲁棒回归残差 QQ 图
对应文件:resid_qq_20260329_165409.png。该图用于判断残差与正态分布假设的偏离程度。
图 4 鲁棒回归残差自相关函数图
对应文件:resid_acf_20260329_165409.png。该图用于检查残差序列是否存在明显自相关。
建议表题与当前 xlsx 工作表保持一致:
表 1 鲁棒回归运行参数表:对应 Parameters。
表 2 鲁棒回归估计结果汇总表:对应 Estimation。
表 3 鲁棒回归系数估计表:对应 Coefficients。
表 4 鲁棒回归残差诊断表:对应 Diagnostics。
表 5 鲁棒回归预测与残差明细表:对应 Forecast。
表 6 鲁棒回归图表索引表:对应 Charts。
17.2 终审说明
本篇已按真实程序结果完成终审补齐。当前核验的结果文件为 具体的算法2/RobustRegression-鲁棒回归/results/鲁棒回归分析结果_20260329_165409/鲁棒回归分析结果_20260329_165409.xlsx,实际工作表为 Parameters、Estimation、Coefficients、Diagnostics、Forecast、Charts,与正文第 13 节和第 14 节的 sheet 对应关系一致。
需要注意的是,该算法的新近复现脚本位于结果根目录而不是上述子结果目录内:具体的算法2/RobustRegression-鲁棒回归/results/repro_robust_regression_template_20260329_165407.py。脚本中的输入路径为 SRC_FILE = 'repro_inputs/sample_data.csv',并由 _resolve_path 优先按算法模块根目录解析,再按脚本所在目录解析;因此论文附录中应写成“复现脚本使用 results/repro_inputs/sample_data.csv 作为相对输入路径”,不要误写为子结果目录下的 repro_inputs。
本篇可作为论文方法说明和结果解释的终稿版本使用:公式编号已覆盖 Huber、RANSAC、Theil-Sen、误差指标和残差诊断;表题已与真实 xlsx sheet 对齐;图题已与真实导出的四类诊断图对齐。若用户实际选择 RANSAC 或 Theil-Sen,论文正文只需在模型设置处替换算法名称和关键超参数,图表说明结构无需改变。
17.3 全量强化补充
- 当前 RobustRegression 文档应绑定真实算法目录
具体的算法2/RobustRegression-鲁棒回归,代表性主结果目录为具体的算法2/RobustRegression-鲁棒回归/results/鲁棒回归分析结果_20260329_165409。 - 该主目录首层工作簿为
鲁棒回归分析结果_20260329_165409.xlsx,真实工作表为Parameters、Estimation、Coefficients、Diagnostics、Forecast、Charts。 - 当前与该轮主结果对应的实体图并不在子结果目录内,而是平铺在
results根目录,真实文件为fit_vs_true_20260329_165407.png、resid_hist_20260329_165407.png、resid_qq_20260329_165407.png、resid_acf_20260329_165407.png。旧文引用165409后缀图片需要修正为当前实盘存在的165407图组。 results根目录同时存在repro_inputs/、repro_robust_regression_template_20260329_165407.py以及多组不同时间戳图。这说明 RobustRegression 的结构与 GAM 类似,是“时间戳主结果目录 + results 根目录平铺图和 repro 入口”的分层模式。- 复现脚本
repro_robust_regression_template_20260329_165407.py的关键输入写法为SRC_FILE = 'repro_inputs/sample_data.csv',并通过解析逻辑优先按模块根目录、再按脚本目录定位。因此附录应写成“使用results/repro_inputs/sample_data.csv的相对路径快照复现”,不要误写成主结果子目录自带repro_inputs。 - 论文与附录若要追溯一轮完整证据,应把
鲁棒回归分析结果_20260329_165409/鲁棒回归分析结果_20260329_165409.xlsx与results根目录下的165407图组、repro_robust_regression_template_20260329_165407.py、repro_inputs/sample_data.csv视为同轮相邻产物。
18. 软件实现核查补充(2026-07)
- 当前实现的主结果目录应写作
具体的算法2/RobustRegression-鲁棒回归/results/鲁棒回归分析结果_20260329_165409,主工作簿为鲁棒回归分析结果_20260329_165409.xlsx。 - 正文应围绕
Parameters、Estimation、Coefficients、Diagnostics、Forecast、Charts来写,图则对应fit_vs_true_20260329_165407.png、resid_hist_20260329_165407.png、resid_qq_20260329_165407.png、resid_acf_20260329_165407.png。 repro_robust_regression_template_20260329_165407.py + repro_inputs/sample_data.csv属于results根目录平铺复现口径,正文和附录应与主结果目录分开写。- 旧的
165409图号应按磁盘事实修正为165407图组。