2016-11-16 60 views
5

下,上四分位数中的R

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 你知道为什么吗?

+0

btw,'boxplot'返回一个可以根据需要使用的对象:'bX = boxplot(X); abline(h = bX $ stats [c(2,4),1],col =“red”,lty = 2)' –

回答

7

框的值被称为铰链,可能与四分位数一致(按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

3

的差异起因于位数的定义的模糊性。没有一种方法是严格正确或不正确的 - 当它们与特定数据点不完全一致并且必须进行插值时,估计分位数(例如偶数个数据点)的方法有简单的不同方法。有点令人不安,boxplotquantile(等功能,提供了汇总统计)使用不同的默认方法来计算位数,虽然这些默认设置可以使用type =争执缠身的quantile

我们可以在行动中更清晰地看到这些差异通过看一些不同的方式来产生R.

位数统计

两个boxplotfivenum给出相同的价值观:

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 

boxplotfivenum,下(上)四分位数相当于数据的下(上)半的中位数(包括完整数据的中位数):

c(median(X[ X <= median(X) ]), median(X[ X >= median(X) ])) 
# [1] 25.5 48.0 

但是,quartilesummary做的事情不同:

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之间的差异取决于功能数据之间如何插值。 quartile尝试通过估计累积分布函数的形状进行插值。据?quantile:从在probs x中的供给元件在 概率一个或两个阶统计基于 基础分布分位数的

位数返回的估计。采用按照类型选择的Hyndman和Fan(1996)中讨论的 中的九个分位数算法之一。

的九种不同的方法quantile全部细节采用估计数据的分布函数可以在?quantile发现,也过于冗长全额这里重现。需要注意的重要一点是,9种方法取自Hyndman和Fan(1996)推荐的类型8. quantile使用的默认方法是类型7,由于与S兼容的历史原因。 我们可以看到使用由位数不同的方法提供四分位数:

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。但是,当有奇数个数据时,它将与boxplot统计数据一致。

我们可以根据是否有奇数或偶数数据自动选择类型为5或7来显示此作品。盒形图在下面显示位数为数据集具有1至30个值,与boxplotquantile给予相同的值奇数和偶数N个图像:

layout(matrix(1:30,5,6, byrow = T), respect = T) 
par(mar=c(0.2,0.2,0.2,0.2), bty="n", yaxt="n", xaxt="n") 

for (N in 1:30){ 
    X = sample(100, N) 
    boxplot(X) 
    abline(h=quantile(X, c(0.25, 0.5, 0.75), type=c(5,7)[(N %% 2) + 1]), col="red", lty=2) 
} 

enter image description here


海德门,RJ和范,Y.(1996)统计包中的样本分位数,美国统计学家50,361-365