R混淆中的两样本Kolmogorov-Smirnov检验p值

机器算法验证 r p 值 kolmogorov-smirnov 测试
2022-03-24 07:40:03

我对 R 中的两样本 Kolmogorov-Smirnov 检验 (ks.test) 返回的 p 值的适当解释感到困惑。

本演示文稿的幻灯片 23 中,关于非参数双样本检验,作者指出,在分析 ks.test 结果时:

ks.test(male, female)
Two-sample Kolmogorov-Smirnov test
data: male and female 
D = 0.8333, p-value = 0.02597

p 值

需要乘以 2 进行 2 尾检验。因此,P = 0.05194

真的吗?

如果我们使用原始 p = 0.02597,我们将拒绝分布相似的假设,因为 p < 0.05,对吗?而如果我们将它乘以 2,则 p 表明分布之间没有差异,因为 p > 0.05?

我错过了什么?

1个回答

不,这是错误的。R 中的默认 Kolmogorov-Smirnov 已经是双面的(即已经测试了而不是(在所有三种情况下,我们都应该添加“某处”)。FXFYFX<FYFX>FY

如果您进行了单尾测试但打算进行双尾测试(并且如果样本结果与您测试的方向不同),通常将 p- 加倍是合理接近正确的双尾测试的值,但严格来说,仍然是错误的。

虽然在 t 检验的情况下,每个尾部中的拒绝事件是相互排斥的 - 所以你可以只添加它们的概率,并且对称所以添加是加倍 - 对于 Kolmogorov-Smirnov 它们不是相互排斥的 - 每个单尾 Kolmogorov-Smirnov 检验可以拒绝同一样本。但是,在 null 下,能够拒绝两个方向的情况相对较少,因此加倍通常不是一个糟糕的近似值。

这只是不必要的,因为该ks.test函数会很高兴地为我们计算双尾 p 值而无需做任何事情——事实上,我们必须明确要求一个单尾 p 值。