I want to determine if there’s a difference in mean p-values between two groups. In order to do this I perform a Wilcoxon’s rank-sum test (the data is not normally distributed). So far, so good. Finally, I want to calculate the corresponding effect size. Unfortunately, R does not provide this. It also does not provide a z value with which the effect size can easily be calculated using: effect size = z / sqrt(N)
here is some sample R code:
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
Does anybody know how to obtain the effect size?
The estimator that corresponds to the Wilcoxon test is the Hodges-Lehmann estimator; it’s returned by
wilcox.test using the
conf.int=TRUE option, under “difference in location”.
For your example:
> 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
For more on the Wilcoxon and the assumptions behind it, and what it actually tests for, and other nonparametric estimators, this document is (possibly) helpful: