Kolmogorov-Smirnov测试

时间:2015-01-26 20:54:12

标签: r statistics simulation probability hypothesis-test

我使用R函数ks.test()来测试R随机数生成器的均匀分布。我使用以下代码: replicate(100000, ks.test(runif(n),y="punif")

n小于或等于100时,它可以正常工作,但当n大于100时,我会收到以下警告消息:

In ks.test(runif(100000), y = "punif") :
  ties should not be present for the Kolmogorov-Smirnov test.

这些" tie"是什么?

1 个答案:

答案 0 :(得分:10)

如果您检查函数ks.test的正文,您将在正文的某处看到以下行:

if (length(unique(x)) < n) {
    warning("ties should not be present for the Kolmogorov-Smirnov test")
    TIES <- TRUE
}

这告诉您,当x中的唯一元素数量低于元素数量时 - 您将收到此警告。换句话说,如果你的向量有重复的条目 - 你将收到警告。

最有可能发生的事情是,当n>与使用n = 100相比,有更多机会在某处获得重复值。因为你重复这几千次,在x中有两个相同值的概率就会增加。

作为一个例子,这段代码没有给我任何警告:

set.seed(1234)
smth <- replicate(100000, ks.test(runif(101),y="punif"))