我正在尝试在 Excel 中计算 Mann-Whitney 检验,但得到的结果与在 python 中得到的结果不完全相同。
例如我有以下数据:
2015 年观测值:2,2,5,1,2,2,2,4,2,4,5,4,2,1,3,3,2,2,1,2,2,1,4 ,3,1,3,4,3,5,1
2016 年观测值:2,1,2,5,5,1,5,3,2,1,2,5,5,2,4,4,3,1,2,2,1,3,3 ,1,2,5,1,4,3,5
我使用以下代码:
scipy.stats.mannwhitneyu([2,2,5,1,2,2,2,4,2,4,5,4,2,1,3,3,2,2,1,2,2,1,4,3,1,3,4,3,5,1],
[2,1,2,5,5,1,5,3,2,1,2,5,5,2,4,4,3,1,2,2,1,3,3,1,2,5,1,4,3,5],
use_continuity=False)
我得到了以下结果:
所以它们是相等的。
但是当我写 use_continuity=True 时,我得到以下结果:
当我输入 use_continuity=-1 时,我得到以下信息:
所以你可能会看到,我有 excel 和 python 的相反结果。根据这个解释 https://github.com/scipy/scipy/blob/v1.6.3/scipy/stats/stats.py#L7090-L7185 use_Continity 用于
有没有可能解释不正确,确实有
或者也许你有任何其他想法为什么我会得到不正确的结果?
scipy/scipy#2118
中所述。 “应该”发生的是校正将检验统计量推向渐近分布的均值,稍微增加 p 值以补偿精确分布的离散性质。自从这个问题发布以来,mannwhitneyu
已被重写,连续性校正的新实现已可用here
。另外,请注意
use_continuity=-1
绝不应该被允许;这是一个错误。