在试图找出哪个更好用时,我遇到了两个问题。
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
威尔考克斯测试:
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() 可以使用(“线性”、“标准化”和“测试”)返回三种不同的统计数据,其中“线性”是正常的 W,而“标准化”只是将 W 转换为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
这些值确实完全不同(尽管测试是等效的)。
获得与
wilcox.test()
相同的U统计量,你需要减去 wilcox_test()
的输出统计量由的行列总和的最小值表示引用 sample 可以拿,就是n_1(n_1+1)/2
.这两个命令都采用分组变量因子中的第一级
g
作为引用(默认情况下按字母顺序排列)。然后,您可以计算引用样本可能的最小秩和:
n1 <- table(w2@statistic@x)[1]
和
w2@statistic@linearstatistic- n1*(n1+1)/2 == w1$statistic
应该返回
TRUE
瞧。
关于r - coin::wilcox_test 与 R 中的 wilcox.test,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23450221/