当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R quantile 样本分位数


R语言 quantile 位于 stats 包(package)。

说明

通用函数 quantile 生成与给定概率相对应的样本分位数。最小的观测值对应于概率 0,最大的观测值对应于概率 1。

用法

quantile(x, ...)

## Default S3 method:
quantile(x, probs = seq(0, 1, 0.25), na.rm = FALSE,
         names = TRUE, type = 7, digits = 7, ...)

参数

x

想要其样本分位数的数值向量,或已定义方法的类的对象(另请参阅‘details’)。数值向量中不允许使用 NANaN 值,除非 na.rmTRUE

probs

概率的数值向量,其值为 。 (值高达‘⁠2e-14⁠’超出该范围的将被接受并移动到附近的端点。)

na.rm

逻辑性;如果为 true,则在计算分位数之前,将从 x 中删除任何 NANaN

names

逻辑性;如果为 true,则结果具有 names 属性。设置为 FALSE 以加速许多 probs

type

1 到 9 之间的整数,选择要使用的九个分位数算法之一。

digits

仅当names为 true:设置百分比格式时使用的精度。在R版本高达 4.0.x,这已设置为max(2, getOption("digits")),内部。

...

传入或传出其他方法的进一步参数。

细节

返回长度为length(probs)的向量;如果 names = TRUE ,则它具有 names 属性。

probs 中的 NANaN 值将传播到结果。

默认方法与分类对象的工作方式非常类似数字向量,sort 以及(类型 1 和 3 不需要)元素加法和数字乘法可以正常工作。请注意,由于它位于命名空间中,因此将使用 base 中的 sort 副本,而不是该名称的某些 S4 泛型。另请注意,这不是对 ‘correctly’ 的检查,因此例如quantile 可以应用于复向量,这些向量(除了关系)将按其实部排序。

有一个用于日期时间类的方法(请参阅"POSIXt")。类型 1 和 3 可用于类 "Date" 和有序因子。

类型

quantile 根据 x 中提供的元素以 probs 中的概率返回基础分布分位数的估计值。采用 Hyndman 和 Fan (1996) 中讨论的九种分位数算法之一,由 type 选择。

所有样本分位数被定义为连续顺序统计的加权平均值。 类型的样本分位数定义如下:

其中 的阶次统计量, 是样本大小, 的值是 的函数。 是由样本分位数类型确定的常量。

不连续样本分位数类型 1、2 和 3

对于类型 1、2 和 3, 的不连续函数,当 时为 ,当 时为

类型1

经验分布函数的反函数。如果 则为 ,否则为 1。

2型

与类型 1 类似,但在不连续处进行平均。 如果 ,否则为 1(SAS 默认值,请参阅 Wicklin(2017))。

3型

最近偶数阶统计量(SAS 默认值到 2010 年左右)。如果 为偶数,则 ,否则为1。

连续样本分位数类型 4 至 9

对于类型 4 到 9, 的连续函数,下面给出 。可以通过点 之间的线性插值等效地获得样本分位数,其中 阶统计量。下面给出 的具体表达式。

4型

。即经验 cdf 的线性插值。

5型

。这是一个分段线性函数,其中结是经验 cdf 的步骤中间的值。这在水文学家中很流行。

6型

。因此 。 Minitab 和 SPSS 使用此函数。

7型

。在这种情况下, 。这个是S用的。

8型

。然后是 。无论 x 的分布如何,所得分位数估计值大约为 median-unbiased 。

9型

。如果 x 呈正态分布,则所得分位数估计值对于预期的顺序统计数据近似无偏。

Hyndman 和 Fan (1996) 中提供了更多详细信息,他们推荐了类型 8。默认方法是类型 7,由 S 和 by 使用R< 2.0.0。 Makkonen 主张使用类型 6,这也是 Weibull 在 1939 年提出的。维基百科页面包含有关软件中这 9 种类型的可用性的更多信息。

例子

quantile(x <- rnorm(1001)) # Extremes & Quartiles by default
quantile(x,  probs = c(0.1, 0.5, 1, 2, 5, 10, 50, NA)/100)

### Compare different types
quantAll <- function(x, prob, ...)
  t(vapply(1:9, function(typ) quantile(x, probs = prob, type = typ, ...),
           quantile(x, prob, type=1, ...)))
p <- c(0.1, 0.5, 1, 2, 5, 10, 50)/100
signif(quantAll(x, p), 4)

## 0% and 100% are equal to min(), max() for all types:
stopifnot(t(quantAll(x, prob=0:1)) == range(x))

## for complex numbers:
z <- complex(real = x, imaginary = -10*x)
signif(quantAll(z, p), 4)

作者

of the version used in R >= 2.0.0, Ivan Frohne and Rob J Hyndman.

参考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

Hyndman, R. J. and Fan, Y. (1996) Sample quantiles in statistical packages, American Statistician 50, 361-365. doi:10.2307/2684934.

Wicklin, R. (2017) Sample quantiles: A comparison of 9 definitions; SAS Blog. https://blogs.sas.com/content/iml/2017/05/24/definitions-sample-quantiles.html

Wikipedia: https://en.wikipedia.org/wiki/Quantile#Estimating_quantiles_from_a_sample

也可以看看

ecdf 为经验分布,其中 quantile 是其逆分布; boxplot.statsfivenum 用于计算其他版本的四分位数等。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Sample Quantiles。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。