快速线性回归对异常值具有鲁棒性


50

我正在处理具有离群值的线性数据,其中一些离估计回归线的距离至少是5个标准差。我正在寻找一种线性回归技术,以减少这些点的影响。

到目前为止,我所做的是估计所有数据的回归线,然后丢弃残差非常大的平方(例如前10%)的数据点,并在没有这些点的情况下重复进行回归。

在文献中,有很多可能的方法:最小限度的平方,分位数回归,m估计量等。我真的不知道我应该尝试哪种方法,因此我正在寻找建议。对我来说重要的是,选择的方法应该快速,因为会在优化例程的每个步骤中计算出稳健的回归。非常感谢!


2
您没有提到的一种方法是使用自由度未知的Student- t错误。但是,这可能没有您所需的速度快。

@Procrastinator :(很容易想象异常值的配置在哪里),这将不起作用。
user603 2012年

@ user603对任何方法都正确,没有万能药;)。我只是在指出另一种方法。为您的答案+1。

3
@Procrastinator:我同意所有方法都会因一定程度的污染而失败。在这种情况下,“故障”可以定量和凭经验定义。但是我们的想法是仍然支持那些仅在较高污染率下才会失败的方法。
user603 2012年

4
由于这是在优化例程中反复进行的,因此回归中的数据可能(最终)缓慢变化。这建议一种适合您情况的算法:从某种形式的鲁棒回归开始,但是在优化过程中采取小步骤时,只需在下一步中假设任何先前的异常值都将保持异常值。对数据使用OLS,然后检查假设的离群值是否仍在偏远位置。如果不是,请使用健壮的过程重新启动,但是,如果这样(可能经常发生),您将节省大量计算。
whuber

Answers:


55

如果您的数据包含单个异常值,则可以使用您建议的方法(尽管没有迭代)可靠地找到它。对此的正式方法是

Cook,R。Dennis(1979)。线性回归的影响观察美国统计协会杂志(American Statistics Association)74(365):169–174。

MMMρ

  • 11+pp
  • 或者离群值不在设计空间之外(Ellis and Morgenthaler(1992))。

Ml1robustbasequantregR

np+1Mρ

在过去的20年中(尤其是在过去的10年中),已经设计了许多快速而可靠的离群值检测算法来近似解决此组合问题。现在,这些功能已在最受欢迎的统计软件包(R,Matlab,SAS,STATA等)中广泛实施。

O(2p)pn

pp<20

Rousseeuw,PJ和van Zomeren BC(1990)。揭露多元离群点和杠杆点美国统计协会杂志,第一卷。85,No.411,第633-639页。

Rousseeuw,PJ和Van Driessen,K。(2006)。大数据集的LTS回归计算数据挖掘和知识发现档案库第12卷第1期,第29-45页。

Hubert,M.,Rousseeuw,PJ和Van Aelst,S.(2008年)。高故障稳健多元方法统计科学,第一卷。23,第1号,92-119

Ellis SP和Morgenthaler S.(1992)。L1回归中的杠杆和细分。 美国统计协会杂志,第一卷。87,第417页,第143-148页

关于离群值识别问题的最新参考书是:

Maronna RA,Martin RD和Yohai VJ(2006)。稳健的统计:理论与方法。纽约威利。

这些方法(以及这些方法的许多其他变体)在包中实现(以及其他方法)。robustbase R


4
现在,这是一个很好的答案!
彼得·弗洛姆

p<10p

2
p<10M

1
“最大的优势在于,大多数算法都令人尴尬地是并行的。” 我喜欢这样的措辞。;)
Mateen Ulhaq 2016年

1
@Mateen,好吧,毕竟这是艺术术语。:)
JM不是统计学家

19

对于简单回归(单倍x),相对于斜率LS而言,Theil-Sen线在针对y异常值和影响点的鲁棒性以及总体上具有良好的效率(在正常情况下)方面要说些什么。斜坡的击穿点接近30%;只要截距(人们使用过各种可能的截距)的故障率没有降低,整个过程就可以很好地应对相当大的污染。

它的速度可能听起来像它会是坏的-位的斜坡看起来是即使有一个中位数-但我的记忆是,它可以更迅速地完成如果速度确实是一个问题(我相信)(n2)O(n2)O(n)O(nlogn)

编辑:user603要求Theil回归优于L1回归。答案是我提到的另一件事-影响点:

Theil_vs_L1

红线是配合(从功能在包)。绿色与Theil坡度吻合。它只需要在x值中输入一个错字-就像输入533而不是输入53-就会发生这种情况。因此,拟合对于x空间中的单个错字并不稳健。大号L1rqquantregL1


确实可以在时间进行计算。您能否详细说明一下TS估算器相对于回归的优势(在单x情况下)?l 1nlognl1
user603 2013年

1
@ user603参见编辑。
Glen_b

(+1)感谢您的修改。指出此功能很重要。
user603 2013年

1
相对于MM估计,例如R软件包robustbase中的lmrob()甚至什至{除了安装MASS软件包中的'base R'} rlm(*,... method =“ MM”)外,还有什么优势?它们具有完整的击穿点(〜50%),在正常情况下可能更有效率。
MartinMächler'13年

1
@MartinMächler看来您在反对我没有提出的要求。如果您想提出一个包含其他高分解稳健估计量的比较的答案,尤其是那些对于OP级别的人来说大致一样容易理解的估计量,那么我希望阅读它。
2013年

12

您是否看过RANSAC(Wikipedia)

即使在存在大量异常值和噪声的情况下,这也应该能够很好地计算出合理的线性模型,因为它是基于这样的假设,即只有部分数据实际上属于该机制。


是的,但是添加一个简单的重新加权步骤会产生一个估计器(LTS),该估计器具有同样的鲁棒性,因此更加稳定且具有统计上的效率。为什么不呢?
user603 2013年

1

我发现惩罚性误差回归最好。您还可以迭代使用并重新加权样本,这与解决方案不太一致。基本思想是使用误差来扩充模型: 其中是未知误差向量。现在您对执行回归 。有趣的是,你当然可以用“融合套索”这个时候就可以估算你的测量结果的确定性事先并把这个作为权重为解决新略低不同的任务 Ÿ = X + ë ë ý - X - ë 2 2 + λ ë 1 w ^ = d 瓦特ý - X - ë 2 2 + λ W¯¯ ë 1l1

y=Ax+e
e
yAxe22+λe1
W=diag(wi)
yAxe22+λWe1

可以在这里找到更多信息:http : //statweb.stanford.edu/~candes/papers/GrossErrorsSmallErrors.pdf


您是否在示例Glen_b上尝试过该操作(如果您在他放置他的位置旁边添加第二个离群值)还是我已发布?
user603

@ user603不,我只是将其应用于从相机图像进行3D建模的更多实际案例中。那里有很大帮助。但是,可以吸取的教训是:如果您有多种方法可以消除异常值,请使用它们。
mojovski
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.