我想使用Kolmogorov Smirnov测试在R中执行以下测试:
1)pi前4000个小数位的各种整数出现如下:
0 1 2 3 4 5 6 7 8 9
368 426 408 374 405 415 398 376 400 430
测试零假设,即各种整数的出现遵循均匀分布,就像pi是随机数一样。
尝试:
我获得了累积概率密度函数并将其设置为x。
x <- c(.092,.1985,.3005,.394,.49525,.599,.6985,.7925,.8925,1)
ks.test(x,y="punif")
输出:
One-sample Kolmogorov-Smirnov test
data: x
D = 0.1005, p-value = 0.9996
alternative hypothesis: two-sided
然而,手动完成D = .008。我做错了什么?
手算:
假设一致性,我们将得到以下cdf:
.1, .2, .3, .4, .5, .6, .7, .8, .9, 1
然后我找到了这些值与x之间差异的绝对值,如上所定义,以获得.008的最大差异。
答案 0 :(得分:1)
这里可能存在一些问题。
首先,ks.test
希望其参数为“数据值”的数字向量(我的重点),而不是分布的摘要。所以输入应该是类似的。
pi_digits <- rep(0:9,c(368,426,408,374,405,415,398,376,400,430))
其次,Kolmogorov-Smirnov检验旨在测试两个连续概率分布之间的距离。因此,当我试图输入上述值时,我收到关于关系的警告。