稳健回归(Robust Regression)方法主要用于处理传统最小二乘法(OLS)对异常值敏感的问题。下面是常见的几类稳健回归方法及其简介:
1. M估计(M-estimators)
- 核心思想:用其他损失函数替代平方误差,减小异常值影响。 
- 常用的损失函数: 
- Huber 损失:在误差较小时等同于平方损失,误差较大时变为线性损失。 
- Tukey's Biweight:对大误差给予零权重。 
- Hampel 损失等。 
- 实现: - statsmodels.robust.robust_linear_model.RLM
2. RANSAC(Random Sample Consensus)
- 核心思想:从数据中随机采样子集,多次拟合模型并选择使大多数数据点残差最小的模型。 
- 特点:适合数据中有大量离群点(outliers)的情况。 
- 实现: - sklearn.linear_model.RANSACRegressor
3. Theil–Sen 回归
- 核心思想:计算所有点对之间斜率的中位数作为回归斜率。 
- 特点:对于单变量回归特别稳健,抗异常值能力强。 
- 实现: - sklearn.linear_model.TheilSenRegressor
4. Quantile Regression(分位数回归)
- 核心思想:回归不是最小化平方误差,而是最小化分位损失函数(如中位数为0.5)。 
- 特点:不仅稳健,还可以拟合条件分布的不同分位点。 
- 实现: - statsmodels.regression.quantile_regression.QuantReg
5. Least Trimmed Squares (LTS)
- 核心思想:只考虑最小残差的前一部分数据点,忽略残差最大的点。 
- 特点:对异常值非常不敏感。 
- 实现: - sklearn没有直接支持,但可在- pyrobust或 R 语言中找到实现。
6. LAD(Least Absolute Deviations)回归
- 核心思想:最小化绝对残差(L1损失)而非平方残差。 
- 特点:对异常值更稳健,但在求解上不如OLS简洁。 
- 实现:可使用 - QuantileRegressor(quantile=0.5)或- statsmodels.QuantReg(..., q=0.5)
补充:Python库实现推荐
| 方法 | Python实现位置 | 
|---|---|
| M估计 | statsmodels.robust.robust_linear_model.RLM | 
| RANSAC | sklearn.linear_model.RANSACRegressor | 
| Theil-Sen | sklearn.linear_model.TheilSenRegressor | 
| Quantile回归 | statsmodels.regression.quantile_regression.QuantReg | 
| LAD回归 | sklearn.linear_model.QuantileRegressor(quantile=0.5) | 
 
                    
系统当前共有 481 篇文章