箱线图缺少 R 中的异常值

Boxplot missing an outlier in R

我有以下数据:

d = c(58.33333, 58.33333, 56.66667, 45.00000, 60.00000, 70.00000, 61.66667, 51.66667, 58.33333, 71.66667, 50.00000, 63.33333)

数据的汇总统计数据为:

Min.    1st Qu.  Median    Mean    3rd Qu.    Max. 
45.00   55.42    58.33     58.75   62.08      71.67

当我使用函数 boxplot(d, range=1.5) 绘制数据箱线图时,我得到以下信息:

根据我的计算,下胡须应该只延伸到 55.42 - 1.5*(62.08-55.42) = 45.43。话虽如此,最小数据点 (45) 应显示为异常值,但该图实际上将晶须向下延伸至该最小值。为什么会这样?是否有我不知道的舍入程序将 45 包括在范围内?比如与两点(45.43 和 45)有多接近有关的东西?

这里的问题是 boxplot 使用与 summaryquantile 不同的方法计算四分位数。来自 ?boxplot.stats:

The two ‘hinges’ are versions of the first and third quartile, i.e., close to quantile(x, c(1,3)/4). The hinges equal the quartiles for odd n (where n <- length(x)) and differ for even n

示例:

boxplot.stats(d)$stats
[1] 45.00000 54.16667 58.33333 62.50000 71.66667

fivenum(d) # the same
[1] 45.00000 54.16667 58.33333 62.50000 71.66667

quantile(d) # different
      0%      25%      50%      75%     100% 
45.00000 55.41667 58.33333 62.08333 71.66667 

quantile指定方法(类型)以获得相同的结果:

quantile(d, type = 2)
      0%      25%      50%      75%     100% 
45.00000 54.16667 58.33333 62.50000 71.66667