可以从数据中删除异常值吗?


33

我寻找一种从数据集中删除异常值的方法,然后发现了这个问题

但是,在对这个问题的一些评论和答案中,人们提到从数据中删除异常值是一种不好的做法。

在我的数据集中,我有几个异常值很可能是由于测量误差引起的。即使其中一些不是,我也无法逐案检查,因为数据点太多。从统计上讲,不仅仅是删除异常值吗?或者,如果没有,那又是什么解决方案?

如果我仅将那些点留在那里,它们会以一种不反映现实的方式影响例如均值(因为它们大多数还是错误)。

编辑:我正在使用皮肤电导数据。大多数极限值是由于伪影,例如有人拉电线。

EDIT2:我对数据进行分析的主要兴趣是确定两组之间是否存在差异


3
那你想做什么?数据摘要?预测分析?数据可视化?证明两组之间有(没有)显着差异?与所有数据清除一样,没有通用答案。
Piotr Migdal'3


5
我是一位从事大量统计工作的工程师。那是免责声明,是供认,这意味着我必须交付产品。我们只允许删除完全归因的“坏”点。您能证明是有人拉电线吗?如果您采取了一些有意措施,则可以将其绑定并聚类。然后,您可以在群集上拆分数据(拉还是非拉),而不再是离群值了。如果您无法证明根本原因是什么,则必须(必须)保留它。它谈到变化,这是很大的分析内容。如果您不喜欢它,就无法摆脱它。
EngrStudent-恢复莫妮卡

4
我认为您从错误的结尾开始。第一个问题是,您如何首先识别异常值?
user603

5
与其随意删除任意标识的离群值,不如考虑“由于我受到人们拉电线等问题的污染,我可以使用哪些不受这种污染严重影响的方法?
Glen_b-恢复莫妮卡

Answers:


26

我不建议在主要分析中排除任何异常值(除非您真的很肯定他们错了)。但是,您可以在敏感性分析中进行此操作,然后比较两次分析的结果。在科学中,当您专注于这些异常值时,往往会发现新的东西。

为了进一步阐述,考虑一下弗莱明(Fleming)开创性的青霉素发现,基于他的实验被模具意外污染的情况:

http://www.abpischools.org.uk/page/modules/infectiousdiseases_timeline/timeline6.cfm?coSiteNavigation_allTopic=1

纵观过去或现在,异常检测通常用于指导生物医学科学的创新。例如,请参阅以下文章(带有一些合适的R代码):

http://www.la-press.com/a-comparison-of-methods-for-data-driven-cancer-outlier-discovery-and-a-article-a2599-abstract?article_id=2599

http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3394880/

http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0102678

最后,如果您有合理的理由排除某些数据,则可以这样做,最好是在敏感性分析中,而不是在主要分析中。例如,您可以排除所有在生物学上都不合理的值(例如败血症患者的温度为48摄氏度)。同样,您可以排除任何给定患者的所有首个和最后一个测量值,以最大程度地减少运动伪影。但是请注意,如果您事后进行此操作(不基于预先指定的条件),则可能会导致数据大规模合并。


5
同意,但是我发现这个答案可以通过简短的方式来支持。也许您可以提供一个可行的示例,或者说明关注异常值的原因以及发现新事物的原因方式?乍一看,这可能并不那么明显。
蒂姆

26

一种选择是排除异常值,但是恕我直言,只有在您可以(几乎可以肯定)争辩这些点为何无效的情况下(例如,测量设备损坏,测量方法由于某种原因不可靠...),您才应该这样做。例如在频域测量中,由于许多不同的项会导致DC,因此直流通常会被丢弃,这与您尝试观察到的现象通常无关。

删除离群值的问题在于,要确定哪些点是离群值,您需要对什么是“好数据”或没有“好数据”有一个好的模型。如果不确定模型(应包括哪些因素,模型具有什么结构,噪声的假设是什么……),则不能确定异常值。这些离群值可能只是试图告诉您模型错误的样本。换句话说:删除异常值将增强您的(错误!)模型,而不是让您获得新的见解!

另一种选择是使用可靠的统计信息。例如,平均值和标准偏差对异常值敏感,“位置”和“传播”的其他度量则更可靠。例如,使用中位数代替平均值。代替标准偏差,使用四分位间距。除了标准的最小二乘回归,还可以使用鲁棒回归。所有这些健壮的方法都以一种或另一种方式消除了离群值,但是它们通常不能完全删除离群值数据(即,一件好事)。


5
好答案。大多数人没有意识到并非每种技术都适用于每种类型的数据。不幸的是,集中在离群值周围的数据的均值上。他们从这样的答案中得到的叫醒电话越多,对每个人都越好。
rumtscho

16

以为我会添加一个有关删除异常值的警告性故事:

还记得极性臭氧层中的孔问题吗?有一枚人造卫星进入极地轨道,专门用于测量臭氧浓度。几年来,来自卫星的后处理数据报告说,即使其他来源清楚地表明缺少臭氧,极性臭氧也以正常水平存在。最后有人回去检查卫星软件。事实证明,有人编写了代码,以检查原始测量值是否在典型历史水平的预期范围内,并假定该范围之外的任何测量值只是一种仪器“峰值”(即异常值),自动校正值。幸运的是,他们还记录了原始测量值。在检查他们时,他们发现漏洞一直存在。


12
最好包含对事件的引用:他们为什么没有更早发现这种现象?不幸的是,TOMS数据分析软件已编程为标记和预留与预期测量值有很大偏差的数据点,因此,本应引起警报的初始测量值被忽略了。简而言之,TOMS团队未能在几年前检测到臭氧消耗,因为它比科学家预期的严重得多。
约翰尼

3
这是一个伟大的故事。一再重复,但对我而言math.uni-augsburg.de/stochastik/pukelsheim/1990c.pdf令人信服地将其识别为基于误解的神话。顺便提一下,由于有两极,“极性臭氧层”需要重写。
尼克·考克斯

3
另请参见权威帐户Christie。M.2001。《臭氧层科学哲学观》。剑桥:Cambridge UP
Nick Cox

7

“异常值”是一个方便的术语,用于将数据收集在一起,该数据与您期望的过程看起来不一样,以便从分析中删除。

我建议不要(稍后再进行 caveat)消除异常值。我的背景是统计过程控制,因此经常处理大量自动生成的时间序列数据,这些数据将根据数据和分布使用运行图/移动框图/等进行处理。

离群值的问题是它们将始终提供有关“过程”的信息。通常,您认为一个过程实际上是许多过程,并且它要比您认为的要复杂得多。

使用您问题中的示例,我建议可能存在许多“过程”。由于...会有变化

  • 一台电导仪采集的样品
  • 电导设备之间采集的样品
  • 当受试者取下探针时
  • 当对象移动时
  • 一个受试者的皮肤在其整个身体内或在不同采样天之间(头发,水分,油脂等)的差异
  • 主体之间的差异
  • 进行人员测量和人员之间差异的培训

所有这些过程都会在数据中产生额外的变化,并且可能会移动均值并改变分布的形状。其中许多您将无法分为不同的流程。

因此,将数据点删除为“异常值”的想法...只有在可以肯定地将数据点归因于我不想在分析中包括的特定“过程”时,我才删除数据点。然后,您需要确保将不包含的原因记录为分析的一部分,因此显而易见。不要假定归因,这是在数据收集过程中通过观察记录额外笔记的关键。

我会质疑您的陈述“因为无论如何大多数都是错误”,因为它们不是错误,而只是您在测量中确定为不同的不同过程的一部分。

在您的示例中,我认为排除可能归因于您不想分析的单独流程的数据点是合理的


6

如果要删除异常值,则在大多数情况下,您需要记录一下这样做的原因以及原因。如果这是用于科学论文或用于监管目的,则可能会导致您的最终统计数据被打折和/或被拒绝。

更好的解决方案是识别您认为何时获得不良数据(例如,当人们拔电线时),然后确定何时人们拔电线,并出于这个原因而拔出数据。这可能还会导致某些“良好”的数据点被删除,但是您现在有一个“真正的”理由在收集端而不是在分析端对这些数据点进行标记和打折。只要您干净,透明地进行此操作,第三方就很可能接受。如果删除与拉线有关的数据点,但仍然出现异常值,那么可能的结论是拉线不是(唯一的)问题-进一步的问题可能与您的实验设计或理论有关。

我妈妈回到大学完成理学学士学位时进行的第一个实验之一是,给学生一个关于过程如何工作的“糟糕”理论,然后告诉他们进行一个实验。删除或修改了产生的“不良”数据点的学生未能通过作业。那些正确报告其数据与(不良)理论所预测的结果不一致的人通过了。作业的重点是教学生不要在预期之外的情况下“修复”(伪造)数据。

摘要:如果您要生成不良数据,请修复实验,而不是数据。


5

当然,这是一个道德困境。一方面,为什么要让一些可疑的数据点破坏模型对大量数据的适应性?另一方面,删除与模型的现实概念不一致的观察结果是一种审查制度。就@Egon而言,这些离群值可能试图告诉您有关该现实的信息。

在统计学家Steve MacEachern的演讲中,他将异常值定义为“ [不代表所研究的现象。]”按照这种观点,如果您认为这些可疑数据点不代表您要研究的皮肤电导现象, ,也许它们不属于分析范围。或者,如果允许他们留下,则应使用一种方法来限制他们的影响力。在同一演示中,MacEachern给出了鲁棒方法的示例,我记得在那几个示例中,去除了异常值的经典方法始终与仍然包含异常值的鲁棒分析相一致。就我个人而言,我倾向于使用我最熟悉的古典技术,并忍受离群值删除的道德不确定性。


8
在Box中,Hunter&Hunter:“实验人员的统计资料”告诉我们,在化学工业中, 异常值通常会导致新的专利。您想放弃您的新专利吗?
kjetil b halvorsen

2
不,我不想错过任何专利。但是我也不想旋转十二个周期来尝试让我的模型适应“有人拉电线”。这几乎肯定不是正在研究的现象。我确实喜欢将异常值视为机会,并且对于直接删除要说的一件事是,至少代码将提供这些删除的文档,而在健壮的方法中,异常值与其他要点共存。
Ben Ogorek

2
正确的是,必须考虑到特定情况。不应做的是应用一些与上下文无关的“规则”以排除异常值。没有任何良好的规则。
kjetil b halvorsen

1
我最喜欢语境功能的观点是“士力架是否健康吗?”这一问题说明了这一点。好吧,如果您迷失了三天,而您在地面上却发现了一些,那么事实证明它们毕竟很健康。我觉得这里的热门答案告诉我们:“除非您绝对确定自己不死去,否则请不要吃士力架吧。”
Ben Ogorek

0

如果我对100个人进行随机抽样,而其中的一个碰巧是比尔·盖茨,那么据我所知,比尔·盖茨代表了人口的1/100。

修正后的均值告诉我平均彩票收入为$ 0。


没有异常,修整后的均值不适用于偏斜的分布。
伊夫·戴乌斯特

-2

当然,您应该删除异常值,因为根据定义,异常值不会遵循详细检查的分布,而是一种寄生现象。

真正的问题是“我怎样才能可靠地检测到异常值”!


如果这样的分布是柯西怎么办?
AdamO '18年

@AdamO:当然,真正的问题仍然存在。
伊夫·戴乌斯特

为什么要投票?
伊夫·戴乌斯特

3
(-1)因为我认为这不是从理论,实例或实践中得出的足够的贡献。什么是“寄生现象”,而是对数据的诗意理解?在处理血压,尿钠和神经影像学方面,我每天看到的“异常值”代表了所考虑的人群。删除它们可能是造成偏差的重要原因。说它们是“寄生现象”,暗示地和欺骗性地允许进行危险的统计实践。
AdamO '18年

@adam:您只是在主张保持我的观点,我完全同意。
伊夫·戴乌斯特
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.