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


R qqnorm 分位數-分位數圖


R語言 qqnorm 位於 stats 包(package)。

說明

qqnorm 是一個通用函數,其默認方法會生成 y 中的值的正常 QQ 圖。 qqline 將一條線添加到 “theoretical”(默認為正態)、quantile-quantile 圖中,該圖穿過 probs 分位數(默認為第一和第三四分位數)。

qqplot 生成兩個數據集的 QQ 圖。如果給定 conf.level,則根據 Switzer (1976) 繪製將 x 分布轉換為 y 分布的函數的置信帶。 QQ圖可以理解為這種處理函數的估計。如果是exact = NULL(默認值),則如果樣本大小的乘積小於 10000,無論有或沒有關係,都會計算精確的置信帶。否則,使用漸近分布,其近似值在小樣本中可能不準確。當 simulate = TRUE 時,計算基於 B 隨機排列的 Monte-Carlo 近似值。置信帶與斯米爾諾夫檢驗一致,即當且僅當來自同一分布的兩個樣本的零值不能在同一水平上被拒絕時,平分線被帶覆蓋。

圖形參數可以作為 qqnormqqplotqqline 的參數給出。

用法

qqnorm(y, ...)
## Default S3 method:
qqnorm(y, ylim, main = "Normal Q-Q Plot",
       xlab = "Theoretical Quantiles", ylab = "Sample Quantiles",
       plot.it = TRUE, datax = FALSE, ...)

qqline(y, datax = FALSE, distribution = qnorm,
       probs = c(0.25, 0.75), qtype = 7, ...)

qqplot(x, y, plot.it = TRUE,
       xlab = deparse1(substitute(x)),
       ylab = deparse1(substitute(y)), ...,
       conf.level = NULL, 
       conf.args = list(exact = NULL, simulate.p.value = FALSE,
                        B = 2000, col = NA, border = NULL))

參數

x

qqplot 的第一個示例。

y

第二個或唯一的數據樣本。

xlab, ylab, main

情節標簽。如果 datax = TRUE ,則 xlabylab 分別指 y 軸和 x 軸。

plot.it

合乎邏輯的。應該繪製結果嗎?

datax

合乎邏輯的。數據值應該在 x 軸上嗎?

distribution

參考理論分布的分位數函數。

probs

長度為二的數值向量,表示概率。相應的分位數對定義所繪製的線。

qtype

quantile 中使用的分位數計算的 type

ylim, ...

圖形參數。

conf.level

樂隊的置信水平。默認值 NULL 不會導致置信帶的計算。

conf.args

定義置信帶計算和可視化的參數列表:exactNULL(參見詳細信息)或指示是否應計算精確 p 值的邏輯,simulate.p.value 是指示是否通過 Monte 計算 p 值的邏輯卡羅模擬, B 定義蒙特卡羅測試中使用的重複次數, colborder 定義置信帶的填充顏色和邊框(默認值 NANULL 是使帶區不填充黑色邊框。

對於 qqnormqqplot ,包含組件的列表

x

已繪製/將繪製的點的 x 坐標

y

原本的y向量,即對應的y坐標包括NA.如果conf.level被指定為qqplot,該列表包含附加組件lwrupr定義置信帶。

例子

require(graphics)

y <- rt(200, df = 5)
qqnorm(y); qqline(y, col = 2)
qqplot(y, rt(300, df = 5))

qqnorm(precip, ylab = "Precipitation [in/yr] for 70 US cities")

## "QQ-Chisquare" : --------------------------
y <- rchisq(500, df = 3)
## Q-Q plot for Chi^2 data against true theoretical distribution:
qqplot(qchisq(ppoints(500), df = 3), y,
       main = expression("Q-Q plot for" ~~ {chi^2}[nu == 3]))
qqline(y, distribution = function(p) qchisq(p, df = 3),
       probs = c(0.1, 0.6), col = 2)
mtext("qqline(*, dist = qchisq(., df=3), prob = c(0.1, 0.6))")
## (Note that the above uses ppoints() with a = 1/2, giving the
## probability points for quantile type 5: so theoretically, using
## qqline(qtype = 5) might be preferable.) 

## Figure 1 in Switzer (1976), knee angle data
switzer <- data.frame(
    angle = c(-31, -30, -25, -25, -23, -23, -22, -20, -20, -18,
              -18, -18, -16, -15, -15, -14, -13, -11, -10, - 9,
              - 8, - 7, - 7, - 7, - 6, - 6, - 4, - 4, - 3, - 2,
              - 2, - 1,   1,   1,   4,   5,  11,  12,  16,  34,
              -31, -20, -18, -16, -16, -16, -15, -14, -14, -14,
              -14, -13, -13, -11, -11, -10, - 9, - 9, - 8, - 7,
              - 7, - 6, - 6,  -5, - 5, - 5, - 4, - 2, - 2, - 2,
                0,   0,   1,   1,   2,   4,   5,   5,   6,  17),
    sex = gl(2, 40, labels = c("Female", "Male")))

ks.test(angle ~ sex, data = switzer)
d <- with(switzer, split(angle, sex))
with(d, qqplot(Female, Male, pch = 19, xlim = c(-31, 31), ylim = c(-31, 31),
               conf.level = 0.945, 
               conf.args = list(col = "lightgrey", exact = TRUE))
)
abline(a = 0, b = 1)

## agreement with ks.test
set.seed(1)
x <- rnorm(50)
y <- rnorm(50, mean = .5, sd = .95)
ex <- TRUE
### p = 0.112
(pval <- ks.test(x, y, exact = ex)$p.value)
## 88.8% confidence band with bisecting line
## touching the lower bound
qqplot(x, y, pch = 19, conf.level = 1 - pval, 
       conf.args = list(exact = ex, col = "lightgrey"))
abline(a = 0, b = 1)

參考

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

Switzer, P. (1976). Confidence procedures for two-sample problems. Biometrika, 63(1), 13-25. doi:10.1093/biomet/63.1.13.

也可以看看

ppoints ,由 qqnorm 用於生成正態分布的預期順序統計數據的近似值。

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Quantile-Quantile Plots。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。