Kolmogorov-Smirnov 检验

Kolmogorov-Smirnov 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.

那些是什么"ties"?

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

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

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

最有可能发生的事情是,当 n > 100 时,与使用 n = 100 相比,在某处获得重复值的机会更多。因为你重复了数千次,所以在其中有两个相同值的概率x 上升。

例如,这段代码没有给我任何警告:

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