1

我想使用 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 之间差异的绝对值,以获得 0.008 的最大差异。

4

1 回答 1

1

这里可能有几个问题。

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

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

其次,Kolmogorov-Smirnov 检验旨在检验两个连续概率分布之间的距离。所以当我尝试输入上面的值时,我收到了一个关于关系的警告。

于 2018-02-01T03:37:11.180 回答