解释R中的Quantile()函数
我整日都被R分位数功能迷住了。
我对分位数的工作方式有一个直观的认识,并获得了硕士学位。在统计数据中,但是天哪,它的文档对我来说很混乱。
从文档中:
Q[i](p) = (1 - gamma) x[j] + gamma x[j+1],
到目前为止,我已经接受了。对于类型i分位数,它是x [j]和x [j + 1]之间的插值,基于一些神秘的常数伽玛
where 1 <= i <= 9, (j-m)/n <= p < (j-m+1)/ n, x[j] is the jth order statistic, n is the sample size, and m is a constant determined by the sample quantile type. Here gamma depends on the fractional part of g = np+m-j.
那么,如何计算j?米?
For the continuous sample quantile types (4 through 9), the sample quantiles can be obtained by linear interpolation between the kth order statistic and p(k): p(k) = (k - alpha) / (n - alpha - beta + 1), where α and β are constants determined by the type. Further, m = alpha + p(1 - alpha - beta), and gamma = g.
现在我真的迷路了。 p,以前是一个常数,现在显然是一个函数。
因此,对于类型7分位数,默认值为...
Type 7 p(k) = (k - 1) / (n - 1). In this case, p(k) = mode[F(x[k])]. This is used by S.
有人要帮我吗?特别是,我对p是函数和常数的概念感到困惑,到底m是什么,现在要为某个特定p计算j。
我希望基于此处的答案,我们可以提交一些经过修订的文档,以更好地解释此处的情况。
分位数R源代码
或者输入:Quantile.default
解决方案
给向量提供分位数并且没有已知的CDF时,有多种计算分位数的方法。
考虑一下当观测值不完全落在分位数上时该怎么办的问题。
"类型"只是确定如何执行此操作。因此,这些方法说:"在第k阶统计量和p(k)之间使用线性插值"。
那么,p(k)是多少?一个人说:"好吧,我喜欢使用k / n"。另一个人说:"我喜欢使用(k-1)/(n-1)"等。这些方法中的每一种都有不同的属性,更适合于一个问题或者另一个问题。
\ alpha和\ beta只是参数化函数p的方法。在一种情况下,它们是1和1. 在另一种情况下,它们是3/8和-1/4. 我认为p在文档中永远不是常数。它们只是不总是显式地显示依赖性。
看看当我们插入1:5和1:6之类的向量时,不同类型会发生什么。
(还要注意,即使观察结果恰好落在分位数上,某些类型仍将使用线性插值法)。
我们很困惑。该文档太糟糕了。我不得不回到其依据(Hyndman,RJ; Fan,Y。(1996年11月)。"统计数据包中的样本分位数"。AmericanStatistician 50(4):361365. doi:10.2307 / 2684934)获得该论文。一种理解。让我们从第一个问题开始。
where 1 <= i <= 9, (j-m)/n <= p < (j-m+1)/ n, x[j] is the jth order statistic, n is the sample size, and m is a constant determined by the sample quantile type. Here gamma depends on the fractional part of g = np+m-j.
第一部分直接来自本文,但是文档作者所省略的是" j = int(pn + m)"。这意味着" Q i"仅取决于最接近通过(排序的)观测值的" p"分数的两个阶次统计量。 (对于像我这样不熟悉该术语的人,一系列观测值的"顺序统计"就是排序后的序列。)
另外,最后一句话是错误的。它应该读
Here gamma depends on the fractional part of np+m, g = np+m-j
至于" m",这很简单。 " m"取决于选择的9种算法中的哪一种。因此,就像" Q [i]"是分位数函数一样,应将" m"视为" m [i]"。对于算法1和2," m"为0,对于算法3," m"为-1/2,其他算法则在下一部分。
For the continuous sample quantile types (4 through 9), the sample quantiles can be obtained by linear interpolation between the kth order statistic and p(k): p(k) = (k - alpha) / (n - alpha - beta + 1), where α and β are constants determined by the type. Further, m = alpha + p(1 - alpha - beta), and gamma = g.
这真是令人困惑。文档中所谓的" p(k)"与之前的" p"不同。 p(k)是绘图位置。在论文中,作者将其写为" p" k,这很有帮助。特别是因为在m的表达式中,p是原始的p,而m = alpha + p *(1 alpha beta)。从概念上讲,对于算法4-9,对点(``p''k,
x [k])进行插值以获得解(
p,
Q i`)。每种算法的区别仅在于" p" k的算法。
至于最后一位,R只是说明S的用途。
原始论文列出了6个"样本分位数的理想特性"函数的列表,并声明了对#8的优先选择,该偏好可以全部满足1. #5满足所有这些要求,但是他们出于其他理由不喜欢它(现象学上比从原理上得出的更多)。 #2是像我这样的非统计专家会考虑的分位数,也是Wikipedia中描述的内容。
顺便说一句,为了回应人们的回答,Mathematica在做事上有很大不同。我想我了解映射。虽然Mathematica的用法更容易理解,但(a)使用无意义的参数更容易用脚射击自己,并且(b)无法执行R的算法#2. (这是Mathworld的"分位数"页面,其中指出Mathematica不能执行#2,但是根据四个参数对所有其他算法进行了更简单的概括。)