當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。