Распределение Пуассона или нормальное распределение

Если необходимо сгенерировать случайные числа в диапазоне [N, M], но с большим количеством чисел, близких к avg (N ‹= avg‹ = M), что лучше использовать:

Глядя на примеры на страницах cppreference (внизу страниц), они оба генерируют то, что необходимо:

poisson_distribution в точке 4:

0 *
1 *******
2 **************
3 *******************
4 *******************
5 ***************
6 **********
7 *****
8 **
9 *
10 
11 
12 
13

normal_distribution в точке 5 со стандартным отклонением 2:

-2 
-1 
 0 
 1 *
 2 ***
 3 ******
 4 ********
 5 **********
 6 ********
 7 *****
 8 ***
 9 *
10 
11 
12

Что выбрать? Может быть, что-то еще?


person vladon    schedule 07.05.2015    source источник
comment
Лучшее распределение для использования - это то, которое лучше описывает ваши данные.   -  person Cory Kramer    schedule 07.05.2015
comment
@Cyber ​​Мне нужно случайное распределение для игры (азартные игры) в [0,1), где оно должно генерировать случайные числа со средним значением 0,25.   -  person vladon    schedule 07.05.2015
comment
Но что моделируют числа? Подбрасывание монет? Бросает кости? Карты, рулетка, цилиндры игровых автоматов или что-то еще? Распределение выбирается на основе того, что вы пытаетесь описать, а не на основе среднего значения и дисперсии.   -  person Useless    schedule 07.05.2015
comment
Игровой автомат @Useless, 0,25 из [0, 1) соответствует 4 из 20, 4 - наименьший значимый символ на игровом автомате.   -  person vladon    schedule 07.05.2015
comment
Для игровых автоматов я бы ожидал, что вероятность того, что каждый символ на данном роторе будет равномерно распределена (каждая позиция одинаково вероятна), но среднее или сумма всех роторов будет использовать распределение Бейтса или Ирвина-Холла, соответственно. Поскольку ни среднее, ни сумма - это не то, как вы оцениваете комбинацию роторов, я не знаю, есть ли простое распределение для общей оценки, но если вы можете правильно сгенерировать каждый ротор, возможно, это не имеет значения.   -  person Useless    schedule 08.05.2015


Ответы (4)


Вы можете центрировать оба дистрибутива в точке, которая соответствует вашим потребностям.

Но если M мало, то распределение Пуассона имеет «толстый хвост», то есть вероятность получить число выше M выше по сравнению с нормальным распределением.

В обычном случае вы можете контролировать этот шанс с помощью параметра дисперсии (он может быть сколь угодно маленьким).

Другое, довольно очевидное отличие состоит в том, что Пуассон будет давать вам только положительные целые числа, тогда как нормальное распределение даст любое число в диапазоне [N,M].

Кроме того, когда [N,M] достаточно велики, Пуассон сходится к нормальному распределению. Таким образом, даже если модель Пуассона является правильной, нормальное приближение не будет таким неточным.

Имея это в виду, если числа не моделируют процесс подсчета, я бы выбрал Нормальный.

person Cristián Antuña    schedule 07.05.2015
comment
Центрирование для получения желаемого среднего работает только для симметричных распределений, и Пуассон может быть сильно искажен. Также неверно ваше утверждение о сходимости Пуассона к нормальному. Пуассоны не выражаются в терминах диапазона, у них есть лямбда с одним параметром, которая является как средним, так и дисперсией. Если лямбда близка (в пределах лямбды) к нижней границе диапазона, результат не будет выглядеть нормально, независимо от размера выборки. - person pjs; 07.05.2015
comment
Я имел в виду, что в обоих случаях он мог выбрать параметр, делающий среднее значение желаемым. В случае Пуассона лямбда, как вы говорите. Что касается сходимости, я предположил, что N ‹lambda‹ M, поэтому я реализовал, что лямбда уходит в бесконечность с желаемым диапазоном. Как говорится в вашем ответе (+1), ни одно из этих распределений не подходит лучше всего для ограниченного диапазона, но, поскольку OP выбирает между этими двумя, я сравнил их. - person Cristián Antuña; 07.05.2015
comment
Почему диапазон должен стремиться к бесконечности? - person pjs; 07.05.2015
comment
Я ответил, прежде чем он пояснил, что он имел в виду использование кода для азартной игры, поэтому диапазон не был установлен. Это могло быть что угодно. Может быть, я должен был спросить об этом, прежде чем отвечать. - person Cristián Antuña; 07.05.2015
comment
Это все еще не обязательно нормализуется. Для стандартного Пуассона (основанного на нуле), если среднее значение меньше sqrt (лямбда), распределение будет искажено и, следовательно, ненормально. Сдвиг распределения и лямбды на N, а затем разрешение N уходить на бесконечность не изменит асимметрии, а поскольку у Пуассона неограниченный верхний хвост, то разрешение M уйти в бесконечность не играет никакой роли. - person pjs; 07.05.2015
comment
Среди других применений, Пуассон дает лучшее приближение к биномиальному распределению, когда p очень близко к нулю (или 1), чем нормальное приближение. Именно тот факт, что распределение Пуассона имеет другую форму, чем нормальная, делает его таким полезным. - person pjs; 07.05.2015
comment
poisson_distribution не поддерживает смещенные Пуассоны, они всегда основаны на 0. Если M ›0, большее значение лямбда-волны приведет к более высокому среднему значению (внутри [M,N]), но все равно рисунки будут из Пуассона на основе 0. Послушайте, я здесь новичок, поэтому, если ответ вводит в заблуждение, я сотру его. Я согласен, что ни один из этих дистрибутивов не подходит для этого упражнения. Но OP сравнивал эти два. По причинам, которые я раскрыл, я думаю, что наименее худший выбор - это нормальная r.v. - person Cristián Antuña; 07.05.2015
comment
Программист может сдвинуть любое распределение, добавив константу сдвига, так что это не должно быть проблемой. Выбор наилучшего зависит от характеристик моделируемого распределения. Если асимметрия имеет значение, выберите асимметричное распределение. Но я пытаюсь указать, что пуассоновские коэффициенты автоматически не становятся нормальными только потому, что N и M могут быть большими. - person pjs; 07.05.2015

Ни один из вариантов не является отличным, если вам нужны результаты в ограниченном диапазоне. Нормальное распределение имеет бесконечные хвосты на обоих концах, распределение Пуассона имеет бесконечный верхний хвост. Как минимум, вам понадобится усеченная форма одного из них. Если вы не усекаете, обратите внимание, что нормаль всегда симметрична относительно своего среднего, в то время как Пуассон может быть сильно искажен. Эти два распределения также отличаются тем, что нормальное непрерывное, а Пуассоновское дискретное, хотя вы можете дискретизировать непрерывные распределения путем объединения результатов.

Если вам нужен дискретный набор результатов в ограниченном диапазоне, вы можете попробовать масштабированное и смещенное биномиальное распределение. Бином с параметрами n и p подсчитывает, сколько «успехов» вы получите из n испытаний, когда испытания независимы и все они дают успех с вероятностью p. Сделайте n = M - N и сдвиньте результат на N, чтобы получить результаты в диапазоне [N, M].

Если вам нужен непрерывный диапазон результатов, рассмотрите возможность использования бета-версии. Вы можете изменять параметры, чтобы получить широкий спектр форм распределения, и набирать среднее значение там, где вы хотите, и масштабировать + сдвигать его в любой диапазон, который вы хотите.

person pjs    schedule 07.05.2015

Если вам нужно распределение, которое находится в пределах диапазона (не бесконечное или полубесконечное, как нормальное или пуассоновское), но имеет четкий максимум, вы можете попробовать распределение Ирвина-Холла с несколькими степенями свободы. Скажем, IH (16) будет иметь минимум 0, максимум 16 и максимум 8, см. http://en.wikipedia.org/wiki/Irwin%E2%80%93Hall_distribution

Очень легко сэмплировать, легко масштабировать, и вы можете поиграть с n, чтобы увеличить или уменьшить пик

person Severin Pappadeux    schedule 08.05.2015

Я предпочитаю нормальное распределение, потому что оно ближе к реальным задачам, а распределение Пуассона используется только для особых случаев. Выбор N.D делает вашу проблему более общей.

person Maged Nasan    schedule 07.05.2015
comment
Это безосновательное и неточное заявление. Как вы могли выбрать один-единственный дистрибутив и заявить, что он точно отражает реальные жизненные проблемы. Распределения сильно различаются, потому что реальные системы тоже сильно различаются. Выбранный вами дистрибутив должен быть тщательно выбран с учетом вашего приложения. Не произвольно, потому что я не знаю, думаю, это обычное дело. - person Cory Kramer; 07.05.2015
comment
Поскольку используемая проблема - это генерация случайных чисел, я предполагаю, что Н.Д. ближе. - person Maged Nasan; 07.05.2015
comment
@MagedNasan Поскольку проблема заключается в генерации случайных чисел ... Какая глупость говорить! Это утверждение в равной степени применимо к любому другому дистрибутиву, который люди могут захотеть создать. - person pjs; 07.05.2015