Boxplot.stats R未识别异常值

Boxplot.stats R未识别异常值,r,boxplot,outliers,R,Boxplot,Outliers,我使用了boxplot.stats$out来获取R中列表的异常值。但是我注意到,很多时候它都无法识别异常值。例如: list = c(3,4,7,500) boxplot.stats(list) $`stats` [1] 3.0 3.5 5.5 253.5 500.0 $n [1] 4 $conf [1] -192 203 $out numeric(0) quantile(list) 0% 25% 50% 75% 100% 3.00

我使用了boxplot.stats$out来获取R中列表的异常值。但是我注意到,很多时候它都无法识别异常值。例如:

list = c(3,4,7,500)
boxplot.stats(list)

$`stats`
[1]   3.0   3.5   5.5 253.5 500.0

$n
[1] 4

$conf
[1] -192  203

$out
numeric(0)

quantile(list)

    0%    25%    50%    75%   100% 
  3.00   3.75   5.50 130.25 500.00 

130.25+1.5*IQR(list) = 320
正如您所看到的,boxplot.stats()函数未能找到异常值500,即使当我查看文档时,它们使用的是Q1/Q3+/-1.5*IQR方法。所以500应该被确定为异常值,但它显然没有找到它,我不知道为什么


我试过用5个元素而不是4个元素的列表,或者用非常小而不是非常大的异常值,我仍然遇到同样的问题

如果仔细阅读帮助页面
帮助(“boxplot.stats”)
,返回值部分会显示以下内容。我的重点

统计数据
长度为5的向量,包含下限的极值
胡须、下部“铰链”、中间带、上部“铰链”和
上部胡须的末端

然后,在同一节中,我再次强调

退出
超出该范围的任何数据点的值 络腮胡的极端情况(if(do.out))


你的数据有4点。在列表成员
$stats
中返回的上胡须的极值是
500.0
,这是数据的最大值。没有错误。

请注意,“统计”部分的第三个数字是253.5,而不是130.25
boxplot.stats
的文档说明:

两个“铰链”是第一个和第三个四分位数的版本,即:。, 接近分位数(x,c(1,3)/4)。铰链等于奇数的四分位数
n(其中n感谢这是有意义的!我尝试了n=5和n=10,仍然得到类似的问题,但上面的答案是有意义的,因为它不是纯粹根据1.5*IQR计算异常值