我正在尝试了解Kolmogorov-Smirnov测试函数的输出(两个样本,两个侧面)。这是一个简单的测试。
x <- c(1,2,2,3,3,3,3,4,5,6)
y <- c(2,3,4,5,5,6,6,6,6,7)
z <- c(12,13,14,15,15,16,16,16,16,17)
ks.test(x,y)
# Two-sample Kolmogorov-Smirnov test
#
#data: x and y
#D = 0.5, p-value = 0.1641
#alternative hypothesis: two-sided
#
#Warning message:
#In ks.test(x, y) : cannot compute exact p-value with ties
ks.test(x,z)
#Two-sample Kolmogorov-Smirnov test
#data: x and z
#D = 1, p-value = 9.08e-05
#alternative hypothesis: two-sided
#
#Warning message:
#In ks.test(x, z) : cannot compute exact p-value with ties
ks.test(x,x)
#Two-sample Kolmogorov-Smirnov test
#data: x and x
#D = 0, p-value = 1
#alternative hypothesis: two-sided
#
#Warning message:
#In ks.test(x, x) : cannot compute exact p-value with ties
我有些不明白的地方。
从帮助看来,p值似乎是关于假设的
var1=var2
。但是,这意味着测试将显示(p<0.05
):一种。不能这样说
X = Y
;b。可以说
X = Z
;C。不能这么说
X = X
(!)
除了看起来x与自身(!)不同之外,对于我来说还很奇怪x=z
,因为这两个分布具有零重叠支持。那怎么可能?
根据测试的定义,
D
应该是两个概率分布之间的最大差,但例如在外壳(x,y)
应该是D = Max|P(x)-P(y)| = 4
(在当P(x)
,P(y)
未标准化)或D=0.3
(如果它们归一化)。为什么D与此不同?我故意制作了一个具有很多联系的示例,因为我使用的数据具有很多相同的值。为什么这会混淆测试?我认为它计算出的概率分布应该不受重复值的影响。任何想法?