Цифры распределения Пи с помощью теста Колмогорова Смирнова
Я хотел бы выполнить следующий тест в 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))
Во-вторых, тест Колмогорова-Смирнова предназначен для проверки расстояния между двумя непрерывными распределениями вероятностей. Поэтому, когда я попытался ввести значения, указанные выше, я получил предупреждение о связях.