r - coin::wilcox_test 与 R 中的 wilcox.test

标签 r

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

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/

相关文章:

r - 如何在Shiny中使用书签将编辑的内容记录在DT表中?

使用子集对数据进行排名

r - 在 macOS 的 conda 环境下使用 R 包

r - iGraph + Plotly 创建随机连接

ggplot 中大集合的随机定性颜色

r - R 可以对困惑的数据格式做什么?

r - 从 R 中的 HTTPS 连接逐行读取

python - python (Scikit-Learn) 和 R (e1071) 的精度不同

r - 为什么 colSums(x, na.rm = T) 中出现错误 : invalid 'na.rm' argument in R

r - 是否可以使用 ggplot 在 map 上覆盖散点图?