我想知道为什么我的答案在python和R中进行mann whitney u测试时是如此不同。在python中:
from scipy.stats import mannwhitneyu
t = [1,2,3]
g = [4,5,6,7,8,9]
mannwhitneyu(t,g)
(0.0, 0.014092901073953692)
在R:
t = c(1,2,3)
g = c(4,5,6,7,8,9)
wilcox.test(t,g, paired = FALSE)
Wilcoxon rank sum test
data: t and g
W = 0, p-value = 0.02381
alternative hypothesis: true location shift is not equal to 0
我想知道为什么python看起来更像是单侧测试。
答案 0 :(得分:6)
记录scipy版本以返回单侧p值。 (目前,doc网站对我不利,所以我无法提供链接,但是如果查看mannwhitneyu
函数的帮助,就可以看到它。)R函数是documented允许您指定侧面度,默认为双面。
答案 1 :(得分:0)
scipy中的MW测试不适用于小于20的样本量。请参见其文档中的注释。因此,您的python结果不准确。
从下面的链接
https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.mannwhitneyu.html
” 笔记
仅在每个样本中的观察次数大于20并且您具有2个独立的等级样本时使用。如果获得的u小于或等于U的临界值,则Mann-Whitney U是有意义的。
此测试可校正平头,默认情况下使用连续性校正。 “