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

Posted

技术标签:

【中文标题】使用 Kolmogorov Smirnov 检验的 Pi 分布数字【英文标题】:Digits of Pi Distribution Using Kolmogorov Smirnov Test 【发布时间】:2018-07-11 07:30:24 【问题描述】:

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

【问题讨论】:

你能多说一下你以前用手做的过程吗? 是的,我会补充的 【参考方案1】:

这里可能有几个问题。

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

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

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

【讨论】:

哦,好吧。我今天刚刚在课堂上了解到这个测试,所以也许他给我们展示了一个离散的例子来简化。

以上是关于使用 Kolmogorov Smirnov 检验的 Pi 分布数字的主要内容,如果未能解决你的问题,请参考以下文章

Kolmogorov-Smirnov 检验中的假设检验 - 无论是临界值还是 p 值

R假设检验之k-s检验(KOLMOGOROV AND SMIRNOV TEST)

Kolmogorov-Smirnov 检验:当存在关系时,应用于离散变量的两样本检验的精确 p 值

Kolmogorov–Smirnov test(KS)

柯尔莫可洛夫-斯米洛夫检验(Kolmogorov–Smirnov test,K-S test)

3.5 样本分布K-S检验 ——python实战