首页 > 解决方案 > R 排除统计数据中的异常值

问题描述

我有鸟类的数据,我正在比较多年来和彼此之间的翅膀长度和重量。我注意到从振铃站收到的一些数据包含不准确的输入。例如,对于某个物种,机翼长度在 40-60 毫米之间,但是在 578 毫米处有一个异常值,这一定是输入错误的结果。是否可以从数据集中排除这些极端异常值?

标签: routliers

解决方案


您有 2 个选项:

  1. 完全删除异常值。
max_believable_value=100
mydata = mydata[ mydata>max_believable_value ]

这通常不是很令人满意,首先因为它会“无形地”删除它们,因此您不会注意到是否系统地发生了更严重的事情,其次因为它会改变数据的形式。如果您有 100 个样本,并且特定样本的一个观察值被认为是“异常值”,但其他的都可以,那么您可能不想完全删除整个样本。

  1. 将异常值标记为“NA”。
mydata[ mydata>max_believable_value ] = NA

这正是“NA”值的含义(“不可用”值),并且大多数 R 函数包含允许您指定如何处理 NA 值的选项(包括通过删除它们!)。
这种方法清楚地表明您有多少“异常值”(或其他可疑值),并且即使一个或多个观察结果看起来无效,您也可以将样本保留在数据中。


推荐阅读