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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。