Цифры распределения Пи с помощью теста Колмогорова Смирнова

Я хотел бы выполнить следующий тест в R, используя тест Колмогорова Смирнова:

1) Вхождение различных целых чисел в первые 4000 десятичных знаков числа Пи выглядит следующим образом:

0   1   2   3   4   5   6   7   8   9
368 426 408 374 405 415 398 376 400 430

Проверьте нулевую гипотезу о том, что вхождение различных целых чисел соответствует равномерному распределению, как если бы число p было случайным числом.

Попытка:

Я получил кумулятивную функцию плотности вероятности и установил ее как х.

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

Затем я нашел абсолютное значение разницы между этими значениями и х, как я определил выше, чтобы получить максимальную разницу в 0,008.

1 ответ

Здесь может быть несколько проблем.

Первый, ks.test хочет, чтобы его аргумент был "числовым вектором значений данных" (мой акцент), а не сводкой распределения. Таким образом, ввод должен быть что-то вроде.

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

Во-вторых, тест Колмогорова-Смирнова предназначен для проверки расстояния между двумя непрерывными распределениями вероятностей. Поэтому, когда я попытался ввести значения, указанные выше, я получил предупреждение о связях.

Другие вопросы по тегам