如何确定 R 中 Wilcoxon 秩和检验的效果大小?

机器算法验证 r 规模效应 wilcoxon-mann-whitney 检验
2022-03-11 15:38:28

我想确定两组之间的平均 p 值是否存在差异。为了做到这一点,我执行了 Wilcoxon 的秩和检验(数据不是正态分布的)。到现在为止还挺好。最后,我要计算相应的效果大小。不幸的是,R 没有提供这个。它也不提供可以使用以下公式轻松计算效果大小的 z 值:效果大小 = z / sqrt(N)

这是一些示例 R 代码:

a=rep(0:1,each=20)                            #grouping variable
b=c(rnorm(20, .03,.01), rnorm(20, .02, .009)) #vector of p-values

d=cbind(a,b)

test = wilcox.test(b ~ a, data = d)     #perform Wilcoxon rank-sum test
test

有人知道如何获得效果大小吗?

2个回答

对应于 Wilcoxon 检验的估计量是 Hodges-Lehmann 估计量;它是通过wilcox.test使用conf.int=TRUE“位置差异”下的选项返回的。

对于您的示例:

> wilcox.test(b~a,data=d, conf.int=TRUE)

    Wilcoxon rank sum test

data:  b by a 
W = 355, p-value = 6.914e-06
alternative hypothesis: true location shift is not equal to 0 
95 percent confidence interval:
 0.008657301 0.021523993 
sample estimates:
difference in location 
            0.01442617 

有关 Wilcoxon 及其背后的假设的更多信息,以及它实际测试的内容以及其他非参数估计器,本文档(可能)很有帮助: www.stat.umn.edu/geyer/old03/5102/notes/rank.pdf

通过以下方式获取公式的 z

library(coin)
mydf <- as.data.frame(d)
wilcoxsign_test(b ~ a, data = mydf, distribution="exact")

并使用您的公式计算效果大小,将 N 设置为 40