识别异常值的方法有很多种,R中有很多不同的方法。 

关于异常值方法的文章使用了理论和实践的混合体。理论一切都很好,但异常值是异常值,因为它们不遵循理论。实践涉及数据的测试方法,有时用基于理论模拟的数据,更好地使用“真实”数据集。如果一种方法发现我们都同意的异常值,那么它可以被认为是成功的,但是我们是否都同意哪些个案是异常值?

异常值概述(O3)图旨在帮助比较和理解异常值方法的结果。

 

R语言OutliersO3软件包异常值检测方法比较_R语言开发
 

Stackloss数据集的O3图。每个变量组合(由左边的列定义)有一行,找到了异常值,并将每个案例的一列标识为异常值(右边的列)。

 

威尔金森的算法为整个数据集找到了6个离群值(图的最下面一行)。总体而言,对于各种变量组合,发现14个案例是潜在的异常值 。 

R语言OutliersO3软件包异常值检测方法比较_R语言教程_02
 

一个O3plot,用于比较堆栈损耗数据集中由HDoutliers和mvBACON标识的异常值。

 

在OutliersO3中有四种其他方法可用, :

##    HDo    PCS    BAC adjOut    DDC    MCD##    14      4      5      0      6      5

R语言OutliersO3软件包异常值检测方法比较_R语言教程_03
 

 

 

R中还有其他异常方法,他们无疑会给出更多不同的结果。建议必须谨慎行事。离群值本身可能是有趣的,它们可能是某种错误 - 我们可能不同意它们是否是异常值。