我什么时候应该使用`scipy.stats.wilcoxon` 而不是`scipy.stats.ranksums`?

机器算法验证 Python 非参数 wilcoxon-mann-whitney 检验 scipy 威尔克森符号秩
2022-04-03 03:57:32

我一直在使用http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.wilcoxon.html但后来我意识到有http://docs.scipy.org/doc/scipy /reference/generated/scipy.stats.ranksums.html

它们听起来几乎一样。我总是听到wilcoxons被称为wilcoxon rank sums. 它们有何不同,我SciPy怎么知道该使用哪一个?我的数据很少呈正态分布,这就是为什么我使用这些非参数检验而不是 t 检验的原因。

1个回答

Frank Wilcoxon 1945 年的论文 [1] 描述了两个测试——“未配对实验”和“配对比较”,它们分别被称为 (Wilcoxon) 秩和检验和 (Wilcoxon) 符号秩检验。

所以第一个测试是针对独立(未配对)样本,第二个是配对样本*。

* 它还可用于比较来自对称分布的单个样本与某个指定的位置中心。

Mann 和 Whitney 在 1947 年扩展了用于比较未配对样本的测试。他们以一种起初看起来像是不同测试的方式组织它,尽管测试结果是等效的。[许多其他作者与 Wilcoxon 大约在同一时间提出了相同的想法——甚至更早一点。然而,该测试通常以 Wilcoxon 或 Mann 和 Whitney 或两者命名]

但是,您似乎对秩和检验很熟悉,所以我现在将重点介绍带符号的秩检验。

与秩和检验(或多或少)对应于普通的两样本 t 检验的方式相同,有符号秩检验对应于配对差异的单样本 t 检验。在这种情况下,差异按大小排列(即不考虑符号),然后将对应于正差异的排列相加。

如果配对标签被任意分配给配对成员,则这与相同统计量的分布进行比较(因为如果它们来自相同的总体分布,它们的配对差异应该对称分布在 0 左右,并且每个当 null 为真时,rank 将同样可能是 + 或 -。

相反,当总体分布不同且倾向于使一个样本变大时,统计量应该倾向于大或小(取决于哪个样本来自倾向于更大的总体)。

[请注意,如果 null 为假,则不需要对称分布差异 - 许多书籍错误地声称这是一项要求。但是,如果您只关注位置偏移替代方案,那么差异应该关于位置偏移量是对称的。]

也就是说,大或小的正排名总和(相对于您在 null 下的预期)表明总体差异,表明一个群体往往高于另一个群体。

Wikipedia 的测试版本将正面和负面等级加在一起(用随附的符号代替。这将中心移至 0,但给出了等效的测试。

您调用的函数定义了与上述两个版本不同的统计数据(作为正和负秩和中较小的一个,与 Wilcoxon 论文中的原始定义相匹配),但不同版本的测试都是等价的并且应该在相同条件下给出相同的 p 值。

[1] Wilcoxon, Frank (1945),
“通过排名方法进行的个体比较”
生物识别公报。1 (6),12 月,第 80-83 页。
(此测试的 Wikipedia 页面提供了指向该论文 pdf 的链接)