R中分位数的定义

时间:2015-01-08 00:13:31

标签: r quantile

主要问题:假设您有一个离散的有限数据集$ d $。然后命令摘要(d)返回Min,1st quartile,Median,mean,3rd quartile和max。我的问题是:R使用什么公式来计算第一个四分位数?

背景:我的数据集是:d=c(1,2,3,3,4,9)summary(d)返回2.25作为第一个四分位数。现在,计算第一个四分位数的一种方法是选择值q1,使得25%的数据集小于等于q1。显然,这不是R正在使用的。所以,我想知道,R使用什么公式来计算第一个四分位数?

谷歌搜索这个主题甚至更加困惑,我无法找到R使用的公式。在R中输入help(summary)对我也没有帮助。

1 个答案:

答案 0 :(得分:11)

一般性讨论

样本分位数函数有许多不同的可能性;我们希望它们具有各种属性(包括易于理解和解释!),并且根据我们最想要的属性,我们可能更喜欢不同的定义。

因此,它们之间的各种包使用了许多不同的定义。

Hyndman和Fan [1]的论文给出了样本分位数函数的六个理想属性,列出了分位数函数的九个现有定义,并提到了(许多常见的)包使用哪些定义。它的介绍说(对不起,这句话中的数学不再正常,因为它被移到了SO):

  

统计中使用的样本分位数   包都是基于一个或两个订单统计,和   可以写成

     

\ hat {Q} _i(p)=(1 - γ)X _ {(j)} +γX_ {(j + 1)} \ ,,
   其中\ frac {j-m} {n} \ leq p< \ frac {j-m + 1} {n} \ quad(1)

     

对于某些m \ in \ mathbb {R}和0 \ leq \ gamma \ leq 1。

也就是说,一般来说,样本分位数可以写成两个相邻顺序统计量的某种加权平均值(尽管可能只有其中一个的权重)。

在R

特别是,R提供了Hyndman& Sons提到的所有九个定义。粉丝(默认为7美元)。来自Hyndman&范我们看到了:

  

定义7 。 Gumbel(1939)也考虑了模态的立场   $ p_k = \ text {mode} \,F(X _ {(k)})=(k-l)/(n-1)$。一个不错的属性是$ Q_7(p)$的顶点将范围划分为$ n-1 $个区间,而$ Q_7(p $)和$ 100(1)左边的区间恰好是$ 100p \%$ -p)\%$的间隔位于$ Q_7(p)$。

的右侧

这是什么意思?考虑n=9。然后,对于(k-1)/(n-1) = 0.25,您需要k = 1+(9-1)/4 = 3。也就是说,下四分位数是9的第三个观察值。

我们可以在R中看到:

quantile(1:9)
  0%  25%  50%  75% 100% 
   1    3    5    7    9 

对于n不是4k+1形式的行为,最简单的方法是尝试:

> quantile(1:10)
   0%   25%   50%   75%  100% 
 1.00  3.25  5.50  7.75 10.00 
> quantile(1:11)
  0%  25%  50%  75% 100% 
 1.0  3.5  6.0  8.5 11.0 
> quantile(1:12)
   0%   25%   50%   75%  100% 
 1.00  3.75  6.50  9.25 12.00 

k不是整数时,它会对相邻订单统计信息进行加权平均,与它们之间的分数成比例(即linear interpolation}。

好的一点是,平均而言,你得到的数量是第一个四分位数的3倍。因此,对于9个观测值,例如,你得到6个以上,2个低于第三个观测值,将它们分成3:1的比例。

您的示例数据发生了什么

您有d=c(1,2,3,3,4,9),因此n为6.您需要(k-1)/(n-1)0.25,所以k = 1 + 5/4 = 2.25。也就是说,它需要在第二次和第三次观察之间的25%(巧合的是它们本身是2和3),所以较低的四分位数是2+0.25*(3-2) = 2.25

引擎盖下:一些R细节

当您在数据框上调用summary时,会导致summary.data.frame应用于数据框(即您为其调用的类的相关summary)。它的存在在summary的帮助中提到。

summary.data.frame函数(最终 - 通过应用于每列的summary.default)调用quantile来计算四分位数(不幸的是,你不会在帮助中看到这个,因为{{ 1}}只是简单地将您带到?summary.data.frame帮助,并且不会向您提供有关将summary应用于数字向量时会发生什么的详细信息 - 这是其中一个非常糟糕的点帮助)。

所以summary(或?quantile)描述了R的作用。

这里有两件事(直接基于Hyndman& Fan)。首先,它提供了一般信息:

  

help(quantile)

     

All sample quantiles are defined as weighted averages of consecutive order statistics. Sample quantiles of type i are defined by:

     

Q[i](p) = (1 - γ) x[j] + γ x[j+1],

其次,有关方法7的具体信息:

  

where 1 ≤ i ≤ 9, (j-m)/n ≤ p < (j-m+1)/n, x[j] is the jth order statistic, n is the sample size, the value of γ is a function of j = floor(np + m) and g = np + m - j, and m is a constant determined by the sample quantile type.
   Type 7

     

m = 1-p

希望我之前给出的解释有助于更好地理解这句话。对. p[k] = (k - 1) / (n - 1). In this case, p[k] = mode[F(x[k])]. This is used by S.的帮助几乎只引用了Hyndman&amp;粉丝就定义来说,它的行为非常简单。


<强>参考

[1]:Rob J. Hyndman和Yanan Fan(1996),
“统计包中的分位数样本”,
美国统计学家,Vol。 50,No。4.(11月),pp.361-365

另见讨论here