使用Kolmogorov Smirnov检验的Pi分布数字

时间:2018-02-01 03:27:11

标签: r uniform-distribution kolmogorov-smirnov

我想使用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的最大差异。

1 个答案:

答案 0 :(得分:1)

这里可能存在一些问题。

首先,ks.test希望其参数为“数据值”的数字向量(我的重点),而不是分布的摘要。所以输入应该是类似的。

pi_digits <- rep(0:9,c(368,426,408,374,405,415,398,376,400,430))

其次,Kolmogorov-Smirnov检验旨在测试两个连续概率分布之间的距离。因此,当我试图输入上述值时,我收到关于关系的警告。