我对ks.test函数也抱怀疑态度,有时候真的对它无可奈何:
> x = runif(500)*10
> ks.test(x, "punif", min = 0, max = 10)
One-sample Kolmogorov-Smirnov test
data: x
D = 0.0651, p-value = 0.0289
alternative hypothesis: two-sided
检测不通过,如果重复上述操作,会发现有时可以过,有时不能过。
换一种方法检验看看行不行:你可以将范围0-1的数字乘以100,变成0-100范围内的数据,之后再用ceiling取整,变成范围1-100的整数样本。接着参考帖子“
https://bbs.pinggu.org/thread-2983774-1-1.html”(《
单样本的均匀分布检验》)中的方法,只不过将档位从10上调到100,运行unif.test(x, n = 100)试一试,如果结果在0.9以上,基本就是均匀分布。前提是样本容量,即x向量的长度要足够大,基本保持在250以上。