根据平均绝对误差的箱线图删除异常值以改进回归模型是否作弊


15

我有一个用四种方法测试的预测模型,如下面的箱线图所示。模型预测的属性在0到8的范围内。

您可能会注意到,所有方法都指示一个上界离群值三个下界离群值。我想知道从数据中删除这些实例是否合适?还是这是一种欺骗,以改善预测模型?

在此处输入图片说明


1
(1)我看到四种方法的结果,而不是三种。(2)如何消除预测能力的证据可能会改进方法?
whuber

@whuber(1)是固定的。对于(2),您的意思是删除一个非常不准确地预测的实例,不会整体上带来更好的预测性能(这就是我所说的“改进模型”的意思?
renakre

7
无论出于何种原因(例如4个拟合最差的点)删除观测值本身都是模型选择。你应该评估的预测性能第二个模型的选择。重点是保留用于评估整体预测方法性能的最终测试集的完整性。从您的问题尚不清楚,您是否打算在删除错误预测的数据后重新安装模型(套索等)。
user603

2
作为补充,我补充说,有时在离群值中隐藏着巨大的价值,因此值得仔细研究它们。
Dror Atariah'2

@DrorAtariah谢谢Dror,我同意。极端情况很有价值。
renakre

Answers:


22

这是几乎总是作弊去除意见,以改善回归模型。仅当您真正认为这些事实实际上是离群值时,才应放弃观察。

例如,您将来自心率监测器的时间序列连接到了智能手表。如果您看一下该系列,很容易看到读数为300bps的错误观察结果。这些应该被删除,但不是因为您想改进模型(无论它是什么意思)。它们是阅读错误,与您的心率无关。

但是要注意的一件事是错误与数据的相关性。在我的示例中,可能会争辩说,在诸如跑步或跳跃之类的运动中,当心率监测器移位时,您会出错。这将使这些误差与哈特率相关。在这种情况下,必须小心删除这些异常值和错误,因为它们不是随机的

我将为您提供何时不删除异常值的完整示例。假设您正在测量弹簧上砝码的运动。如果重量相对于重量强度较小,则您会注意到胡克定律的效果很好:其中是力,张力系数,是位置重量。

F=kΔx,
FkΔx

现在,如果您放了很重的砝码或放了太多的砝码,您将开始发现偏差:在足够大的位移,运动似乎会偏离线性模型。因此,您可能很想删除离群值以改进线性模型。这不是一个好主意,因为该模型不能很好地运行,因为胡克定律只是近似正确的。Δx

更新在您的情况下,我建议拉那些数据点并仔细观察它们。可能是实验室仪器故障吗?外部干扰?样品缺陷?等等

接下来,尝试确定这些异常值的出现是否可以与您在我给出的示例中所测量的值相关联。如果存在相关性,那么就没有简单的方法进行处理。如果没有相关性,则可以删除异常值


2
It is always a cheating to remove outliers to improve a regression model. 您是否认为样条回归是作弊行为?FWIW,它确实降体重的意见,以改善[本地]回归模型〜
user603

1
我不同意“删除异常值以改进回归模型总是一种作弊行为。” 有许多工具可以进行回归诊断,其目标是检测并“去除”异常值并重新拟合模型。
海涛杜

6
@ hxd1011诸如Grubbs之类的工具不能自动删除异常值。它们仅表示可能存在异常值,然后您确定是否确实存在异常值。通过自动删除异常值来改进拟合度诊断是非常危险的方法。您必须逐案分析它们。
阿克萨卡尔州

2
好的我明白了。我的原始语言太刻板了。我编辑了开头的句子。感谢您对评论者的反馈
Aksakal

1
@renakre,如果您不认为这些是离群值,请不要删除观察值。但是,除了平方误差之外,您可能需要考虑的是预测优度的度量。例如,如果这些实例对您而言并不那么重要,那么您可能不需要对它们进行平方加权,而使用绝对偏差等。度量应反映预测误差的重要性,例如,每个预测误差上的美元损失。此外,这些都是计数这一事实并不自动意味着没有仪器错误,计算点击次数的网页插件可能会失败
Aksakal

4

我本来想将其发布为对另一个答案的评论,但是它太长了,无法容纳。

当我查看您的模型时,它不一定包含一个大的组和一些离群值。在我看来,它包含1个中型组(1到-1),然后是6个较小的组,每个组在2个整数之间。您可以很清楚地看到,当达到整数时,在这些频率处观察到的数据较少。唯一的特殊点是0,观测值实际上并没有明显的下降。

我认为,值得解释为什么这种分布如此分散:

  • 为什么分布中的这些观察计数全部下降?
  • 为什么此观察计数下降不会在0发生?
  • 这些离群值有什么特别之处,以至于它们是离群值?

在测量离散的人类动作时,总是会有异常值。看看为什么这些离群值不适合您的模型,以及如何将它们用于改进模型的未来迭代,可能会很有趣。


+1。整数差距似乎并不总是恰好等于整数,因此可能更多的人看到了不存在的模式,但它可能是数据收集,编码或离散化的产物,可能会有所启发在整个数据上。甚至可能存在0处的间隙,该间隙被大量重叠且可能是抖动的点掩盖了。绝对值得追根溯源,看看数据是否符合我们的想法。
韦恩

2

删除异常值和仅为“正常模式”构建模型是有利有弊。

  • 优点:模型性能更好。直觉是,很难使用一个模型来捕获“正常模式”和“异常模式”。因此,我们删除异常值并说,我们仅针对“正常模式”构建模型。

  • 缺点:我们将无法预测异常值。换句话说,假设我们将模型投入生产,那么该模型会缺少一些预测

我建议删除异常值并构建模型,如果可能,尝试仅为异常值构建单独的模型。

对于“作弊”一词,如果您正在写论文并明确列出如何定义和删除异常值,则提到的改进性能仅针对干净数据。它不是作弊。


3
我不介意被否决,但是有人可以告诉我原因吗?
Haitao Du

我赞成:)您还认为删除异常值然后重新采样数据以进一步测试预测模型是一个好主意吗?
renakre

1
@renakre我建议您考虑在生产中要做什么。假设,如果您发现离群值只有1%,并且在生产中不产生任何输出是可以的。然后删除它们。如果发现异常值是30%,则跳过生产中的预测是不正确的。然后尝试为其创建单独的模型。
海涛杜

我们主要是在测试事物,以查看是否可以预测某些结果变量。是否if it is fine to produce no output in production意味着同样的事情?因此,如果我们开始在实际应用程序中使用我们的模型来测试结果变量并在应用程序中使用预测分数,那么删除异常值(尤其是如果您提到的异常值很多)是不行的吗?这是你的意思吗?
renakre '17

1
@renakre你死定了!这就是我们最近对AITOBOX所做的工作,其预测极限不仅基于psi权重,而且还基于异常值填充了重新采样的误差。这不仅适用于ARIMA模型,还适用于因果模型,在这些因果模型中,预测变量的不确定性也以类似的方式包含在内。
IrishStat

2

我认为,只有在有充分定性的理由时才删除异常值是合理的。我的意思是说,一个人掌握的信息是,另一个不在模型中的变量正在影响离群值观察。然后,可以选择删除异常值或添加其他变量。

我发现,当我在数据集中发现异常值时,通过研究确定异常值的原因,我可以了解有关我的数据和其他可能考虑的模型的更多信息。


1
欢迎来到stats.SE!请花一点时间查看我们的行程。如果将答案扩展为更全面地回答问题,这将很有帮助(例如,基于箱线图的异常值确定,该方法可能会对预测模型产生影响c)。
Tavrock

2

我什至不认为它们是“异常值”。您可能需要制作一个正态概率图。它们是拟合模型的数据还是残差?


它们是预测值与实际值之间的差。
renakre
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.