我使用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"是什么?
答案 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"))