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


R wilcox.test Wilcoxon 秩和和符号秩检验


R语言 wilcox.test 位于 stats 包(package)。

说明

对数据向量执行一样本和二样本 Wilcoxon 检验;后者也称为“Mann-Whitney”测试。

用法

wilcox.test(x, ...)

## Default S3 method:
wilcox.test(x, y = NULL,
            alternative = c("two.sided", "less", "greater"),
            mu = 0, paired = FALSE, exact = NULL, correct = TRUE,
            conf.int = FALSE, conf.level = 0.95,
            tol.root = 1e-4, digits.rank = Inf, ...)

## S3 method for class 'formula'
wilcox.test(formula, data, subset, na.action, ...)

参数

x

数据值的数值向量。非有限(例如无限或缺失)值将被省略。

y

数据值的可选数字向量:与 x 一样,非有限值将被省略。

alternative

指定备择假设的字符串必须是 "two.sided" (默认)、"greater""less" 之一。您可以仅指定首字母。

mu

指定用于生成原假设的可选参数的数字。查看具体信息'。

paired

指示您是否想要配对测试的逻辑。

exact

指示是否应计算精确 p 值的逻辑。

correct

指示是否在 p 值的正态近似中应用连续性校正的逻辑。

conf.int

指示是否应计算置信区间的逻辑。

conf.level

区间的置信水平。

tol.root

(当 conf.int 为 true 时:)正数值容差,用于 uniroot(*, tol=tol.root) 调用。

digits.rank

一个号码;如果有限, rank(signif(r, digits.rank)) 将用于计算检验统计量的排名,而不是(默认) rank(r)

formula

lhs ~ rhs 形式的公式,其中 lhs 是给出数据值的数值变量,rhs 可以是 1(用于单样本或配对测试),也可以是具有两个水平的因子(给出相应的组)。如果 lhs 属于 "Pair" 类且 rhs 属于 1 ,则完成配对测试。

data

包含公式 formula 中的变量的可选矩阵或 DataFrame (或类似的:请参阅 model.frame )。默认情况下,变量取自environment(formula)

subset

一个可选向量,指定要使用的观测子集。

na.action

一个函数,指示当数据包含 NA 时应该发生什么。默认为 getOption("na.action")

...

要传递给方法或从方法传递的更多参数。

细节

公式接口仅适用于2样本检验。

如果仅给出 x ,或者如果同时给出 xy 并且 pairedTRUE ,则对 x 的分布进行 Wilcoxon 符号秩检验(在一个样本情况下) )或x - y(在配对的两个样本情况下)关于mu 对称。

否则,如果同时给出 xy 并且 pairedFALSE ,则执行 Wilcoxon 秩和检验(相当于 Mann-Whitney 检验:参见注释)。在这种情况下,零假设是 xy 的分布因 mu 的位置偏移而不同,另一种假设是它们因某些其他位置偏移而不同(以及单方面的替代方案 "greater"x 移到 y 的右侧)。

默认情况下(如果未指定 exact),如果样本包含少于 50 个有限值且不存在联系,则会计算精确的 p 值。否则,使用正态近似。

出于稳定性原因,建议使用舍入数据或设置 digits.rank = 7 ,以便关系的确定不依赖于非常小的数值差异(请参见示例)。

(如果参数 conf.int 为 true),计算非参数置信区间和伪中位数(单样本情况)或位置参数差值 x-y 的估计量。 (分布 的伪中位数是 分布的中位数,其中 是独立的,每个都具有分布 。如果 是对称的,则伪中位数和中位数一致。参见 Hollander & Wolfe (1973),第 34 页。)请注意,在两个样本的情况下,位置参数差异的估计器不会估计中位数的差异(常见的误解),而是估计两个样本之间差异的中位数来自 x 的示例和来自 y 的示例。

如果精确的 p 值可用,则通过 Bauer (1972) 中说明的算法获得精确的置信区间,并采用 Hodges-Lehmann 估计器。否则,返回的置信区间和点估计基于正态近似。这些是间隔的continuity-corrected,而不是估计值(因为校正取决于alternative)。

对于小样本,可能无法实现非常高的置信区间覆盖范围。如果发生这种情况,将发出警告,并用覆盖率较低的间隔进行替换。

x(和y,如果适用)有效时,该函数现在始终返回,在无法计算置信区间的conf.int = TRUE情况下也是如此,在这种情况下,区间边界和有时estimate现在包含NaN

"htest" 的列表包含以下组件:

statistic

检验统计量的值及其说明名称。

parameter

检验统计量的精确分布的参数。

p.value

检验的 p 值。

null.value

位置参数mu

alternative

说明备择假设的字符串。

method

所应用的测试类型。

data.name

给出数据名称的字符串。

conf.int

位置参数的置信区间。 (仅在参数 conf.int = TRUE 时出现。)

estimate

位置参数的估计。 (仅在参数 conf.int = TRUE 时出现。)

警告

该函数会使用大量内存和堆栈(甚至崩溃R如果超出堆栈限制)如果exact = TRUE而且一个样本很大(几千个或更多)。

注意

文献对于 Wilcoxon 秩和和 Mann-Whitney 检验的定义并不一致。两个最常见的定义对应于第一个样本的秩之和减去或不减去最小值:R相减,S-PLUS 不相减,给出的值大 对于第一个尺寸的样本 。 (威尔科克森的原始论文似乎使用了未经调整的排名总和,但随后的表格减去了最小值。)

R的值也可以计算为所有对的数量(x[i], y[j])为此y[j]不大于x[i],Mann-Whitney 测试的最常见定义。

例子

require(graphics)
## One-sample test.
## Hollander & Wolfe (1973), 29f.
## Hamilton depression scale factor measurements in 9 patients with
##  mixed anxiety and depression, taken at the first (x) and second
##  (y) visit after initiation of a therapy (administration of a
##  tranquilizer).
x <- c(1.83,  0.50,  1.62,  2.48, 1.68, 1.88, 1.55, 3.06, 1.30)
y <- c(0.878, 0.647, 0.598, 2.05, 1.06, 1.29, 1.06, 3.14, 1.29)
wilcox.test(x, y, paired = TRUE, alternative = "greater")
wilcox.test(y - x, alternative = "less")    # The same.
wilcox.test(y - x, alternative = "less",
            exact = FALSE, correct = FALSE) # H&W large sample
                                            # approximation

## Formula interface to one-sample and paired tests

depression <- data.frame(first = x, second = y, change = y - x)
wilcox.test(change ~ 1, data = depression)
wilcox.test(Pair(first, second) ~ 1, data = depression)

## Two-sample test.
## Hollander & Wolfe (1973), 69f.
## Permeability constants of the human chorioamnion (a placental
##  membrane) at term (x) and between 12 to 26 weeks gestational
##  age (y).  The alternative of interest is greater permeability
##  of the human chorioamnion for the term pregnancy.
x <- c(0.80, 0.83, 1.89, 1.04, 1.45, 1.38, 1.91, 1.64, 0.73, 1.46)
y <- c(1.15, 0.88, 0.90, 0.74, 1.21)
wilcox.test(x, y, alternative = "g")        # greater
wilcox.test(x, y, alternative = "greater",
            exact = FALSE, correct = FALSE) # H&W large sample
                                            # approximation

wilcox.test(rnorm(10), rnorm(10, 2), conf.int = TRUE)

## Formula interface.
boxplot(Ozone ~ Month, data = airquality)
wilcox.test(Ozone ~ Month, data = airquality,
            subset = Month %in% c(5, 8))

## accuracy in ties determination via 'digits.rank':
wilcox.test( 4:2,      3:1,     paired=TRUE) # Warning:  cannot compute exact p-value with ties
wilcox.test((4:2)/10, (3:1)/10, paired=TRUE) # no ties => *no* warning
wilcox.test((4:2)/10, (3:1)/10, paired=TRUE, digits.rank = 9) # same ties as (4:2, 3:1)

参考

David F. Bauer (1972). Constructing confidence sets using rank statistics. Journal of the American Statistical Association 67, 687-690. doi:10.1080/01621459.1972.10481279.

Myles Hollander and Douglas A. Wolfe (1973). Nonparametric Statistical Methods. New York: John Wiley & Sons. Pages 27-33 (one-sample), 68-75 (two-sample).
Or second edition (1999).

也可以看看

psignrankpwilcox

coin 包中的 wilcox_test 用于精确、渐近和蒙特卡罗条件 p 值,包括存在联系的情况。

kruskal.test 用于在两个或多个样本的情况下测试位置参数的同质性; t.test 用于正态假设[或大样本]下的替代方案

相关用法


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