在R中,boxplot()中使用了哪种方法来删除异常值?换句话说,是什么决定给定值是否是异常值?
请注意,此问题不要求如何删除异常值。
编辑:为什么这个问题被低估?请提供意见。我遇到的任何文档都没有删除异常值的方法。
答案 0 :(得分:2)
tl; dr 异常值是大约远离中位数的四分位数范围的两倍(在对称情况下)。更准确地说,超过截止点的点数等于'铰链' (大约1和3d四分位数)+四分之一范围的+/- 1.5倍。
R' boxplot()
函数实际上并没有删除异常值;数据集中的所有观察结果都在图中表示(除非outline
参数为FALSE
)。有关计算的信息,其中点被绘制为异常值(即,作为胡须之外的单个点)隐含地包含在range
参数的描述中:
范围[默认值1.5]:这决定了情节胡须伸出的距离 框。如果“范围”为正,则晶须延伸到最大 极端数据点不超过“范围”倍 四分位数范围从框。值为零会导致 胡须延伸到极端数据。
这必须再解构一下:#34;来自盒子"意思?为了解决这个问题,我们需要查看?boxplot.stats
的详细信息:
这两个'铰链'是第一和第三四分位数的版本, 即接近'分位数(x,c(1,3)/ 4)' [...有关详细信息,请参阅
?boxplot.stats
...]
所有复杂性的原因/"大约等于四分位数"语言是盒子图的开发者想要确保铰链和胡须总是在表示数据集中的实际观察的点处绘制(而四分位数可以位于观察点之间,例如在具有奇数的数据集的情况下)观察)。
示例:
set.seed(101)
z <- rnorm(100000)
boxplot(z)
hinges <- qnorm(c(0.25,0.75))
IQR <- diff(qnorm(c(0.25,0.75)))
abline(h=hinges,lty=2,col=4) ## hinges ~ quartiles
abline(h=hinges+c(-1,1)*1.5*IQR,col=2)
## in this case hinges = +/- IQR/2, so whiskers ~ +/- 2*IQR
abline(h=c(-1,1)*IQR*2,lty=2,col="purple")