在试图找出哪一种更好时,我遇到了两个问题。

1)wilcox.test提供的W统计量与coin::wilcox_test的统计量不同。这是我的输出:

wilcox_test:

Exact Wilcoxon Mann-Whitney Rank Sum Test

data:  data$variableX by data$group (yes, no)
Z = -0.7636, p-value = 0.4489
alternative hypothesis: true mu is not equal to 0

wilcox.test:
Wilcoxon rank sum test with continuity correction

data:  data$variable by data$group
W = 677.5, p-value = 0.448
alternative hypothesis: true location shift is not equal to 0

我知道W实际上有两个值,通常报告较小的一个。当wilcox.test与逗号而不是“〜”一起使用时,我可以得到其他值,但这是W = 834.5。据我了解,coin::statistic()可以使用(“linear”,“standarized”和“test”)返回三个不同的统计信息,其中“linear”是正常W,“standardized”只是W转换为a Z分数。但是这些都不符合我从wilcox.test获得的W(线性= 1055.5,标准化= 0.7636288,测试= -0.7636288)。有什么想法吗?

2)我喜欢wilcox_test中用于“distribution”和“ties.method”的选项,但是看来您不能像wilcox.test中那样应用连续性校正。我对吗?

最佳答案

尝试将Wendt公式应用于coin包来计算效果大小时,我遇到了相同的问题,由于wilcox_test()输出的线性统计数据未经调整,因此获得了异常的r值。

here已经给出了很好的解释,因此,我将简单地介绍如何使用wilcox_test()函数获得调整后的U统计量。让我们使用以下数据框:

d <- data.frame( x = c(rnorm(n = 60, mean = 10, sd = 5), rnorm(n = 30, mean = 16, sd = 5)),
                 g = c(rep("a",times = 60), rep("b",times = 30)) )

我们可以使用wilcox.test()wilcox_test()进行相同的测试:
 w1 <- wilcox.test( formula = x ~ g, data = d )
 w2 <- wilcox_test( formula = x ~ g, data = d )

它将输出两个不同的统计信息:
> w1$statistic
   W
 321

> w2@statistic@linearstatistic
[1] 2151

值确实完全不同(尽管测试是等效的)。

要获得与oj​​it_code相同的U统计量,您需要减去wilcox.test()的输出统计量,即引用样本的秩和之和可以取的最小值,即wilcox_test()

这两个命令均以分组变量n_1(n_1+1)/2的因子中的第一级作为引用(默认情况下将按字母顺序排列)。

然后,您可以计算引用样本可能的最小秩和:
n1  <- table(w2@statistic@x)[1]


w2@statistic@linearstatistic-  n1*(n1+1)/2 == w1$statistic

应该返回g
Voilà。

关于r - coin::wilcox_test与R中的wilcox.test,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23450221/

10-12 17:12