回归可以用于异常值检测。我知道有一些方法可以通过删除异常值来改进回归模型。但这里的主要目的不是拟合回归模型,而是使用回归找出谎言
使用回归的异常值检测
使用回归查找异常值的最佳选择是使用稳健回归。
异常值可以通过两种方式影响普通回归:
首先,在 x 值附近的 y 方向上的极端异常值可以影响该区域的拟合,就像异常值可以影响平均值一样。
其次,在 x 空间中的“外围”观察是一个有影响的观察- 它可以将线的拟合拉向它。如果它足够远,这条线将通过影响点:
在左边的图中,有一个影响很大的点,它把这条线从大量数据中拉了出来。在右边的情节中,它被移得更远了——现在这条线穿过了这个点。当 x 值达到极值时,当您上下移动该点时,线也会随之移动,穿过其他点的平均值并穿过一个有影响的点。
一个与其余数据完全一致的影响点可能不是什么大问题,但是与其余数据的一条线相距甚远的点会使这条线适合它,而不是数据。
如果你看右边的图,红线 - 最小二乘回归线 -根本没有将极值点显示为异常值 - 它的残差为 0。相反,最小二乘线的大残差在数据的主要部分!
这意味着您可以完全错过异常值。
更糟糕的是,对于多元回归,x 空间中的异常值对于任何单个 x 变量来说都不是特别不寻常。如果有这种可能性,那么使用最小二乘回归可能是一件非常危险的事情。
稳健回归
如果你拟合了一条稳健的线——尤其是一条对有影响力的异常值稳健的线——比如第二张图中的绿线——那么异常值的残差就很大。
在这种情况下,您有一些希望识别异常值 - 它们将是在某种意义上不接近线的点。
去除异常值
您当然可以使用稳健的回归来识别并消除异常值。
但是一旦你有一个稳健的回归拟合,它已经不受异常值的严重影响,你不一定需要删除异常值——你已经有了一个很好的拟合模型。
回归可用于异常值检测。
是的。这个答案和 Glen_b 的答案解决了这个问题。
这里的主要目的不是拟合回归模型,而是使用回归找出谎言
基于 Roman Lustrik 的评论,这里是使用(多元线性)回归查找异常值的启发式方法。
假设您有样本量. 然后,执行以下操作:
拟合回归模型例子。记下它的残差平方和 .
对于每个样本 i,在 n-1 个示例(不包括示例 i)上拟合回归模型,并记下相应的残差平方和误差.
现在,比较和对于每个, 如果, 然后是候选异常值。
将这些候选离群点放在一边,我们可以用减少的样本再次重复整个练习。在算法中,我们在数据中挑选出以不好的方式影响回归拟合的示例(这是将示例标记为异常值的一种方式)。