outline = FALSE用什么方法来确定异常值?

tay*_*rwc 4 r outliers boxplot

在R中,我使用outline = FALSE参数在绘制特定集合的框和晶须时排除异常值.它的工作非常出色,但让我想知道它究竟是如何确定哪些元素是异常值的.

boxplot(x, horizontal = TRUE, axes = FALSE, outline = FALSE)
Run Code Online (Sandbox Code Playgroud)

Ben*_*ker 7

一个"异常值"的盒须图的术语是在数据集落在更远比从中间的指定距离,典型地任意点大致中位数和0.25(低级)或0.75之间的2.5倍的差异(分位数.要实现这一目标,请参阅?boxplot.stats:首先,查看out输出中的定义

out:超出胡须极限的任何数据点的值(if(do.out)).

这些是"异常值".

其次,查看基于coef参数的胡须定义,默认情况下为1.5:

晶须延伸到最极端的数据点,该数据点不超过coef盒子远离盒子的长度的倍数.

最后,看一下"铰链"的定义,它是盒子的两端:

两个"铰链"是第一和第三四分位数的版本,即接近分位数(x,c(1,3)/ 4).

将这些放在一起,你得到的离群值(大约)是距中位数的距离,而不是中位数和相关四分位数之间距离的2.5倍.这些有些错综复杂的定义的原因(我认为)部分是历史性的,部分是希望将图的组成部分反映出数据中存在的实际值(而不是两个数据点之间的中间点)尽可能.(您可能需要回到帮助页面中引用的原始文献,以获得完整的理由和解释.)

需要注意的是,通过该算法定义为"异常值"的点不一定是通常统计意义上的异常值(例如,基于数据的特定统计模型出乎意料地极端的点).特别是,如果你有一个大数据集,你必然会看到许多"异常值"(一个迹象表明你可能想要切换到更加数据需求的图形摘要,如小提琴情节或豆图).