Я сделал генератор случайных чисел и генерируется N чисел в диапазоне от 0 до 10007, я хочу, чтобы проверить, насколько хорошо этот генератор в R.Тест Chisquare и тест K-S для заданного набора случайных чисел в диапазоне [0, num_max] в R?
ответ
Вы можете использовать ks.test
, чтобы проверить, если ваш образец соответствует заданному распределению. Например, мы можем сравнить вывод runif
на U (0, 1) распределение:
set.seed(144)
x <- runif(1000, 0, 1)
ks.test(x, "punif", 0, 1)
# One-sample Kolmogorov-Smirnov test
#
# data: x
# D = 0.0326, p-value = 0.2374
# alternative hypothesis: two-sided
В D
значение утверждает, что эмпирическая CDF ваших образцов отличается от ВПР в U (0, 1) распределение на максимум 0,0326. Значение p говорит о том, что существует вероятность 0.2374, что эмпирический cdf из 1000 случайных выборок из случайной величины R будет отличаться от cdf R на D
или более.
Я не думаю, что ваше последнее предложение верный. – Roland
так, означает ли это, что высокая величина p хорошая? Я применил тест Chisquare, и результат: X-squared = 1662, df = 10006, p-value = 1 Хорошо это или плохо? ks test дал p-value = 0.8775 – user3392464
@Roland thanks - я обновил предложение. – josliber
Что такое распространение? Распределены ли они как N (0,1), или U (0,1), или что-то еще? – jlhoward
U (0,1), также, пожалуйста, скажите мне, как интерпретировать о pvalue? – user3392464
Я думаю, ваша проблема не в R, а в математике, потому что ваш вопрос не в программировании. Может быть, вам будет больше удачи на http://stats.stackexchange.com/ (также, вот проблема с оценкой генераторов случайных чисел: http://bit.ly/1gzVa1C) – Jealie