【问题标题】:Method of Outlier Removal for Boxplots箱线图的异常值去除方法
【发布时间】:2017-03-13 07:07:05
【问题描述】:

在R中,boxplot()中使用什么方法去除异常值?换句话说,什么决定了给定值是否是异常值?

请注意,这个问题不是询问如何去除异常值。

编辑:为什么这个问题被否决了?请提供cmets。我遇到的任何文档中都没有去除异常值的方法。

【问题讨论】:

  • 我只能想象为什么投反对票,但我认为有些人可能不会认为这是最狭义的编程问题。
  • @d.b - 谢谢。我知道如何计算异常值。这是R的boxplot()使用的方法吗?
  • 顺便说一句,您可以查看?boxplot.default中的代码。
  • 几乎(但不是相当?)stackoverflow.com/questions/4946964/…的副本

标签: r statistics boxplot


【解决方案1】:

tl;dr 离群值是指距中位数大约两倍的点(在对称情况下)。更准确地说,超出等于“铰链”(大约 1 和 3d 四分位数)的截止值的点是四分位间距的 +/- 1.5 倍。

R 的boxplot() 函数实际上并没有删除 异常值;数据集中的所有观察都在图中表示(除非outline 参数是FALSE)。有关将哪些点绘制为异常值(即,作为胡须之外的单个点)的计算信息隐含在 range 参数的描述中:

range [默认 1.5]:这决定了绘图胡须从 盒子。如果“范围”为正,则晶须延伸到最大 不超过“范围”倍的极端数据点 框的四分位距。零值会导致 胡须延伸到数据的极端。

这必须进一步解构:“从盒子里”是什么意思?为了弄清楚这一点,我们需要查看?boxplot.stats详细信息

两个“铰链”是第一和第三四分位数的版本, 即,接近'quantile(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")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 2017-12-03
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多