我正在使用 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。
如果这三个测试返回极低的 p 值(有时像 10^-30 或更低),那么我是否需要担心 scipy 函数出了问题?这些小得离谱的 p 值可靠吗,我可以只报告 p <<0.01(p 远小于我的阈值)吗?
您无需担心 scipy 函数出现问题。 P 值如此之低仅意味着您的样本实际上不太可能具有相同的父群体。
也就是说,如果您不希望分布有所不同,那么现在是确保您正在测量您认为正在测量的内容的好时机,即您正在向 scipy 输入正确的数据。
一个可能导致不正确(太小)p值的常见错误(至少在生命科学领域)是违反了检验的独立性假设- 检验通常假设样本中的观测值(数据点)是独立的。 例如,GraphPad的Mann-Whitney清单在"错误独立"下有这个。
作为参考,这篇2010年的论文研究了一期《自然神经科学》(神经科学领域的顶级期刊),发现"12%的论文有伪复制,另有36%的论文被怀疑有假复制。
嗯,您遇到了显著性检验的一个众所周知的特征,即随着样本数量无限制地增加,p 值通常变为零。如果原假设为假(通常可以先验建立),那么只需增加样本数量,即可获得尽可能小的 p 值。
我的建议是考虑分布差异会产生什么实际差异。尝试用成本来量化,无论是实际(美元)还是抽象。然后为此设计一个测量方法。