非参数检验的极低 p 值

Extremely low p-values from non-parametric tests

我正在使用 Python 的非参数检验来检查两个样本是否与从相同的潜在父群体中抽取的样本一致:scipy.stats.ks_2samp(2 样本 Kolmogorov-Smirnov) 、scipy.stats.anderson_ksamp(Anderson-Darling 代表 k 个样本)和 scipy.stats.ranksums(Mann-Whitney-Wilcoxon 代表 2 个样本)。我说两个样本彼此显着不同的显着性阈值是 p = 0.01.

如果这三个测试 return 的 p 值极低(有时像 10^-30 或更低),那么我是否需要担心 scipy 函数出现问题?这些小得可笑的 p 值是否可靠,我可以只报告 p << 0.01(p 远小于我的阈值)吗?

您无需担心 scipy 函数出现问题。如此低的 P 值仅意味着您的样本不太可能具有相同的母体。

就是说,如果您没有预料到分布会有(那么)不同,那么现在是确保您正在测量您认为正在测量的东西的好时机,即您正在输入正确的数据至 scipy.

好吧,您遇到了显着性检验的一个众所周知的特征,即随着样本量无限制地增加,p 值通常会变为零。如果原假设为假(通常可以先验地确定),那么您只需增加样本量就可以获得尽可能小的 p 值。

我的建议是考虑分布不同会产生什么实际差异。尝试根据实际成本(美元)或抽象成本对其进行量化。然后设计一个衡量标准。

一个可能导致不正确(太小)p 值的常见错误(至少在生命科学中)是测试的独立性假设——测试通常假设样本中的观察结果(数据点)是独立的——违反了。 GraphPad 的 checklist for Mann-Whitney,例如,在 "errors independent."

下有这个

作为参考,this 2010 paper查看了一期 Nature Neuroscience(神经科学领域的顶级期刊),发现“12% 的论文存在伪重复,另有 36% 的论文疑似存在伪重复。 “