kray_zemli (kray_zemli) wrote in ru_learnmaths,
kray_zemli
kray_zemli
ru_learnmaths

Узнать, что генератор случайных чисел выдаёт правильное распределение

Значится, так. Мне нужно протестировать свою функцию генерации случайных чисел из гамма-распределения. И измерить некий критерий, глядя на который сразу можно сказать, насколько хорошо моя функция работает. Но в статистике я разбираюсь плохо.

Вот, начитался в интернетах про какие-то критерии Колмогорова, Смирнова, Крамера - Мизеса - Смирнова, Андерсона - Дарлинга... А что со всем этим делать?

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

Особенность моей задачи в том, что выборка у меня не одна. Я их могу генерировать пока не надоест.
Ну, получу я по набору выборок другую выборку -- из какого-нибудь там распределения Колмогорова. Дальше что? Задача-то сводится к первоначальной: определить, что набор рассчитанных по выборкам статистик принадлежит заданному распределению (того же Колмогорова).

Вот, например, генерю я 5 выборок по 1 000 000 чисел из гамма-распределения с 3 степенями свободы и считаю перечисленные статистики для них:
0.926393, 3.432818, 0.100131, 0.611727
0.740833, 2.195334, 0.087931, 0.466206
0.816277, 1.131394, 0.110895, 1.020643
0.672845, 0.478320, 0.064685, 0.395366
1.397029, 7.806764, 0.407043, 2.248096

Теперь генерю ещё 5, но сравниваю с другим распределением (3.02 степени свободы), получаю следующее:
3.935976, 61.967636, 7.610451, 41.185492
4.109793, 67.561596, 8.492479, 44.657951
3.955771, 62.592506, 7.432571, 40.582044
4.121158, 67.935767, 7.635961, 41.735655
2.986198, 35.669522, 5.311438, 30.278726

Но если генерить выборки по 10 000 чисел, то разница уже не та:
0.526719, 1.109734, 0.034750, 0.374431
1.376549, 0.357879, 0.482615, 2.359291
0.508077, 1.032569, 0.038354, 0.283708
0.871654, 0.928280, 0.085356, 0.542532
0.790436, 2.075885, 0.105025, 0.659121

0.820100, 2.690254, 0.104159, 0.671643
0.504701, 1.005330, 0.043207, 0.422754
1.238923, 6.139718, 0.312139, 1.835499
0.790672, 2.500651, 0.113357, 0.725326
1.072890, 4.604370, 0.209352, 0.985493

Что и как делать дальше? Нагенерить, скажем, 1000 выборок по 1000 чисел, посчитать среднее значений статистик и сравнить с таковыми для соответствующих распределений?
Subscribe

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 10 comments