什么是稳健回归?常见方法有哪些?
简化版
稳健回归希望少量异常观测或重尾噪声不会支配参数估计。OLS 的平方损失让大残差贡献按平方增长;Huber 在小残差区用二次损失、大残差区改为线性,LAD/分位数回归使用绝对或不对称绝对损失,RANSAC 则从一致子集反复拟合。要区分纵向异常(大残差)和高杠杆点(x 很异常):Huber 主要限制残差方向的影响,未必能抵抗高杠杆坏点。正确流程是先核验数据来源,再结合学生化残差、leverage、Cook 距离和敏感性分析选择方法,而不是自动删除所有异常样本。
详细版
Huber 损失为:
ρδ(r) = 0.5r² , |r|≤δ
δ(|r|-0.5δ) , |r|>δ
ψδ(r) = clip(r, -δ, δ)
它把大残差对梯度的影响截在 ±δ,同时保留小残差区的平滑二次形式。若残差从 2 增到 20 且 δ=3,OLS 损失从 2 增到 200(按 0.5r²),Huber 则从 2 增到 3×(20-1.5)=55.5。
| 方法 | 主要思想 | 适用边界 |
|---|---|---|
| Huber M-estimator | 截断大残差的梯度 | 重尾纵向噪声;高杠杆点仍危险 |
| LAD/中位数回归 | 最小化绝对残差 | 估计条件中位数,抗纵向离群 |
| 分位数回归 | 非对称绝对损失 | 估计条件分位数,不只是“更稳健 OLS” |
| RANSAC | 随机找最大一致集 | 少量离群、明确残差阈值;结果有随机性 |
| Theil–Sen | 多组斜率中位数 | 低维较稳健,高维计算昂贵 |
异常数据若是录入错误,应修复或剔除并留痕;若是真实高价值事件,降权可能正好丢掉业务目标,应分层或单独建模。
完整版教学
一、什么叫“稳健”
稳健不是“遇到异常值预测仍为零误差”,而是少量偏离模型假设的观测不会无限改变估计结果。常用概念包括:影响函数衡量单个微小污染的局部影响,breakdown point 衡量估计量在多大比例任意污染下才会失控,两者描述的稳健性不同。
OLS 最小化残差平方和。单个大残差的损失为 r²,对残差的导数与 r 成正比且无界,因此纵向异常可能拉动整条回归线。不过仅改变残差损失还不够,还要看样本在特征空间中的位置。
二、纵向异常、高杠杆点和影响点
三者不能混为一谈:
- 纵向异常点:给定
x后,y远离拟合关系,残差大。 - 高杠杆点:
x远离大多数样本,在设计矩阵中 leverage 高,残差可以很小。 - 强影响点:删除该点会明显改变系数或拟合;通常结合残差与杠杆形成。
一个高杠杆点可能把回归线拉向自己,最终自身残差反而不大,所以只按残差阈值筛选会漏掉它。Cook 距离综合残差与杠杆,DFBETAS 可观察单点对具体系数的影响,但经验阈值都应配合图形、领域核验和样本量使用。
三、Huber 回归如何限制大残差
Huber 损失在阈值 δ 内使用二次形式,外部改为线性:
ρδ(r)=0.5r² if |r|≤δ
ρδ(r)=δ(|r|-0.5δ) if |r|>δ
其导数 ψδ(r) 在外部为 ±δ,因此大残差不会继续线性放大梯度。实际算法常用迭代重加权最小二乘:残差小时权重接近 1,残差大时权重下降。
阈值应相对稳健尺度估计定义。若目标单位从元换成万元却保持同一个数值 δ,含义会完全变化。δ 小更稳健但可能牺牲高斯数据下效率;δ 大则逐渐接近 OLS,应通过交叉验证和污染情景测试选择。
四、数字例子与影响边界
按 0.5r² 记 OLS 损失,残差 2 和 20 的损失分别为 2 和 200。取 δ=3 时:
Huber(2) = 0.5×2² = 2
Huber(20) = 3×(20-1.5) = 55.5
Huber 显著降低大残差的相对支配力,但 55.5 仍不是零,样本也未被“删除”。若该样本同时有极端 x,参数梯度还会乘上 x;即使 ψ(r) 被截断,极大的特征仍可产生很大影响。这就是 Huber 不能自动解决坏杠杆点的原因。
稳健损失限制的是特定方向的影响,不等于对任意数据污染都稳健。回答时必须说明异常发生在 y、x,还是二者联合结构中。
五、常见方法如何选择
LAD/中位数回归最小化 Σ|r_i|,目标是条件中位数。它对纵向异常比 OLS 稳健,但在高维和高杠杆污染下仍需诊断。
分位数回归使用 pinball loss,可估计 0.1、0.5、0.9 等条件分位数,适合关注尾部风险或异方差。它并不是为了复现条件均值,不能只拿系数与 OLS 一一等同。
RANSAC反复抽取最小样本集拟合,按残差阈值找一致集,最后用最佳一致集重估。它适合内点遵循清楚模型且离群比例有限的场景;阈值、迭代次数和随机种子会影响结果,离群比例高或维度高时成功概率迅速下降。
Theil–Sen用成对或子集斜率的中位数获得稳健估计,低维表现直观,但组合数使高维/大样本代价很高。
六、诊断必须先于“换一个损失”
建议对初始模型同时检查:
| 证据 | 关注对象 | 后续动作 |
|---|---|---|
| 学生化残差与 QQ 图 | 重尾、纵向异常 | Huber/LAD、检查误差分布 |
| leverage/hat value | 特征空间极端点 | 核验采样与输入范围 |
| Cook 距离、DFBETAS | 单点对拟合/系数影响 | 含/不含样本敏感性分析 |
| 残差-拟合值图 | 非线性、异方差 | 变换、加结构或重新建模 |
| 数据血缘 | 录入、单位、传感器故障 | 优先修复数据管道 |
若异常来自错误单位或重复记录,稳健回归只能掩盖问题;应修复并保留审计记录。若异常是真实的罕见事故、巨额索赔或设备故障,它可能是业务最关心的标签,简单降权会使模型对关键事件失明。
七、怎样做公平的模型验证
把 OLS、Huber、LAD 等放在相同训练/验证切分和预处理下比较。除了平均 MAE/RMSE,还要看尾部误差、参数重采样稳定性、关键人群和时间外数据。为了验证稳健性,可在不污染最终测试集的前提下,对训练或专门压力测试集注入已知比例和幅度的污染,观察性能退化曲线。
不要先看全量数据删除疑点,再把清洗后结果当作无偏测试。所有异常规则和阈值都应只由训练数据或业务规范确定。对同一实体重复观测时按实体分组切分,避免近重复样本掩盖模型脆弱性。
八、常见误区与追问
生产中监控残差分位数、稳健权重分布、低权重样本比例、leverage 近似指标、输入范围和各数据源贡献。低权重比例突然上升可能是分布漂移,也可能是单位变更或传感器故障;应保留原始样本与原因码,而不是只留降权后的梯度。
- 误区:稳健回归会自动识别并删除异常值。 多数方法只是限制影响,异常定义仍需诊断和业务核验。
- 误区:Huber 对所有高杠杆点都稳健。 极端
x会放大参数影响,需要专门的 leverage/高破坏点处理。 - 误区:分位数回归就是更稳健的均值回归。 它估计的是条件分位数,目标量已经改变。
- 追问:Huber 的 δ 怎么选? 相对稳健尺度设定候选,结合交叉验证、高斯效率和污染压力测试权衡。
- 追问:为什么不直接 Winsorize? 截尾会改变数据且阈值依赖业务;可以比较,但必须在训练流程内拟合并报告被修改比例。
- 追问:RANSAC 什么时候失败? 内点模型不清楚、离群比例高、最小样本维度大或残差阈值错误时,找到正确一致集的概率很低。
九、加强记忆
用“残差—杠杆—业务含义—敏感性”记忆:OLS 的大残差影响无界,Huber/LAD 能限制纵向异常,却不自动解决高杠杆坏点;RANSAC 假设多数内点形成一致结构,分位数回归则改变为条件分位数目标。先查学生化残差、leverage、Cook 距离和数据血缘,再决定修数据、稳健损失、分层或单独建模;最终用相同切分、时间外数据和污染压力测试验证,而不是删除异常后只汇报更漂亮的指标。