Mann-Whitney U 的 p 值为 1 - 神器?

p value of 1 for Mann-Whitney U - artifact?

我在 R 3.6.3 到 RStudio 1.2.5042 中使用 rstatix 库,并且在 运行 两个样本 Wilcoxon aka Mann 时得到不可能的 p 值 1惠特尼 U 检验。

我的第一直觉告诉我这是一个浮点精度问题,实际值大约是 0.999999,但我来这里是为了在一个未公开的联邦研究机构对我大发雷霆之前进行确认。

这是我的代码:

wilcox_test(data,
            DV ~ Group,
            paired = F,
            exact = T, 
            alternative = "two.sided",
            conf.level = 0.95,
            detailed = T)

Link to .csv formatted data

数据当然是匿名的。此 link 将在 1 周后到期。

交叉发布以保持一致性:

https://stats.stackexchange.com/questions/467572/p-value-of-1-for-mann-whitney-u-artifact-of-r

here and here 所述,P 值为 1 并非不可能。另请注意,在您的情况下,无法计算确切的 p 值,因为您有联系。您使用的函数不提供此信息,但统计数据包中的 wilcox.test() function 会发出警告。

wilcox.test(test_data$DV ~ test_data$Group)

#>Warning message:
#>In wilcox.test.default(x = c(5, 0, 0, 3, 0, 1, 3, 4, 0, 3, 2, 1,  :
#>  cannot compute exact p-value with ties

一点点挖掘发现 rstatix::wilcox_test() 正在抑制有关关系与其实施中的准确性不兼容的警告。如果你 运行 普通的旧 stats::wilcox.test() (无论如何 rstatix 最终都会调用),会发生这种情况:

w <- wilcox.test(DV~Group,data=dat)

Warning message: In wilcox.test.default(x = c(5L, 0L, 0L, 3L, 0L, 1L, 3L, 4L, 0L, : cannot compute exact p-value with ties

您可以看到 here rstatix 正在抑制此警告。

为了仔细检查,我研究了 wilcox.test 的内容:近似检验的 Z 统计量的公式是

STATISTIC-n.x*n.y/2-CORRECTION

(参见 Wikipedia:虽然没有提到连续性校正)。

在这种情况下,W 统计量为 209.5,n.x*n.y/2 为 209,连续性校正为 0.5 - 所以你得到的 Z 统计量正好为零,因此 pnorm(z) 是0.5 并且双尾检验统计量 正好 1.

如果您想准确处理关系:

coin::wilcox_test(DV~factor(Group), data=dat, distribution="exact")
##  Exact Wilcoxon-Mann-Whitney Test
## data:  DV by factor(Group) (Control, Treatment)
## Z = 0.013327, p-value = 0.9954
## alternative hypothesis: true mu is not equal to 0