R中箱形图中的下四分位数和上四分位数

时间:2016-11-16 14:30:24

标签: r plot boxplot

我有

X=c(20 ,18, 34, 45, 30, 51, 63, 52, 29, 36, 27, 24)

使用boxplot,我试图绘制quantile(X,0.25)quantile(X,0.75) 但这并不是R

中箱形图中相同的下四分位数和上四分位数
boxplot(X)
abline(h=quantile(X,0.25),col="red",lty=2)
abline(h=quantile(X,0.75),col="red",lty=2)

enter image description here 你知道为什么吗?

3 个答案:

答案 0 :(得分:11)

框的值称为铰链,可能与四分位数一致(由quantile(x, c(0.25, .075))计算),但计算方式不同。

来自?boxplot.stats

  

两个“铰链”是第一和第三四分位数的版本,即接近分位数(x,c(1,3)/ 4)。铰链等于奇数n的四分位数(其中n < - 长度(x))并且对于偶数n而言是不同的。尽管四分位数仅对n %% 4 == 1(n = 1 mod 4)的观测值相等,但对于n %% 4 == 2(n = 2 mod 4),铰链也是如此,并且在两个中间否则就是观察。

要查看值与奇数个观察值一致,请尝试以下代码:

set.seed(1234)
x <- rnorm(9)

boxplot(x)
abline(h=quantile(x, c(0.25, 0.75)), col="red")

enter image description here

答案 1 :(得分:7)

差异源于分位数定义的模糊性。没有一种方法是严格正确的或不正确的 - 当它们与特定数据点不完全一致并且必须被内插时,在情况(例如偶数个数据点)中有简单的不同方法来估计分位数。有点令人不安的是,boxplotquantile(以及提供汇总统计信息的其他函数)使用不同的默认方法来计算分位数,尽管可以使用{type =参数覆盖这些默认值。 1}}

通过研究在R中生成分位数统计的各种方法,我们可以更清楚地看到这些差异。

quantileboxplot都给出相同的值:

fivenum

boxplot.stats(X)$stats # [1] 18.0 25.5 32.0 48.0 63.0 fivenum(X) # [1] 18.0 25.5 32.0 48.0 63.0 boxplot中,下(上)四分位数相当于数据下半部分(上半部分)的中位数(包括完整数据的中位数):

fivenum

但是,c(median(X[ X <= median(X) ]), median(X[ X >= median(X) ])) # [1] 25.5 48.0 quartile做的事情不同:

summary

这与summary(X) # Min. 1st Qu. Median Mean 3rd Qu. Max. # 18.00 26.25 32.00 35.75 46.50 63.00 quantile(X, c(0.25,0.5,0.75)) # 25% 50% 75% # 26.25 32.00 46.50 boxplot的结果之间的差异取决于函数如何在数据之间进行插值。 fivenum尝试通过估计累积分布函数的形状进行插值。根据{{​​1}}:

  

分位数返回基础分布分位数的估计值   来自x at中提供的元素的一个或两个订单统计信息   probs中的概率。所讨论的九种分位数算法之一   在Hyndman和Fan(1996)中,选择了类型,

可以在quartile中找到用于估计数据分布函数的九种不同方法?quantile的完整详细信息,并且这些方法过于冗长而无法完全重现。需要注意的重要一点是9种方法取自Hyndman和Fan(1996),他们推荐使用类型8. quantile使用的默认方法是类型7,因为与S兼容的历史原因。 我们可以看到使用分位数的不同方法提供的四分位数的估计:

?quantile

其中quantile提供与quantile_methods = data.frame(q25 = sapply(1:9, function(method) quantile(X, 0.25, type = method)), q50 = sapply(1:9, function(method) quantile(X, 0.50, type = method)), q75 = sapply(1:9, function(method) quantile(X, 0.75, type = method))) # q25 q50 q75 # 1 24.0000 30 45.000 # 2 25.5000 32 48.000 # 3 24.0000 30 45.000 # 4 24.0000 30 45.000 # 5 25.5000 32 48.000 # 6 24.7500 32 49.500 # 7 26.2500 32 46.500 # 8 25.2500 32 48.500 # 9 25.3125 32 48.375 相同的四分位数估计值。但是,当存在奇数个数据时,type = 5将与boxplot统计数据一致。

我们可以通过自动选择类型为5或7来显示此工作,具体取决于是否存在奇数或偶数数据。下图中的Boxplot显示具有1到30个值的数据集的分位数,boxplottype=7给出奇数和偶数N的相同值:

boxplot

enter image description here

Hyndman,R。J. and Fan,Y。(1996)统计包中的样本分位数,美国统计学家50,361-365

答案 2 :(得分:0)

可以使用type =中的quantile自变量,而不是boxplot中的qboxplot参数来指定计算样本分位数的方法。但是,在CRAN qboxplot上有一个R包,其中包含一个也称为qboxplot::qboxplot(因此qtype =)的函数,该函数允许使用{{1}指定分位数计算方法。 }参数。