Простое в вычислительном отношении псевдогауссово распределение с переменным средним и стандартным отклонением? - PullRequest
2 голосов
/ 14 мая 2010

На этой картинке из Википедии есть хороший пример функций, которые я в идеале хотел бы сгенерировать:

pseudo-Gaussian distributions

Прямо сейчас я использую распределение Ирвина-Холла, которое является более или менее полиномиальным приближением гауссовского распределения ... в основном, вы используете равномерный генератор случайных чисел и повторяете его x раз, и берете среднее Чем больше итераций, тем больше это распределение Гаусса.

Это довольно мило; однако я хотел бы иметь возможность выбрать другое. Например, допустим, я хотел получить число в диапазоне от 0 до 10, но около 7. Например, среднее значение (если я повторил эту функцию несколько раз) оказалось бы равным 7, но фактический диапазон 0-10.

Есть ли кто-то, кого я должен найти, или мне стоит заняться какой-нибудь необычной математикой со стандартным распределением Гаусса?

Ответы [ 3 ]

1 голос
/ 14 мая 2010

Я вижу противоречие в вашем вопросе. С одной стороны вы хотите нормальное распределение, которое по своей природе является симметричным , с другой стороны вы хотите, чтобы диапазон асимметрично располагался как среднее значение.

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

0 голосов
/ 25 января 2013

Похоже на распределение Усеченный нормальный - это то, что доктор прописал. Это не «вычислительно простой» как таковой, но легко реализовать, если у вас есть существующая реализация нормального распределения.

Вы можете просто сгенерировать распределение со средним значением, которое вы хотите, стандартным отклонением, которое вы хотите, и двумя концами, где вы хотите. Вам нужно будет заранее поработать, чтобы вычислить среднее и стандартное отклонение базового (не усеченного) нормального распределения, чтобы получить среднее значение для нужного TN, но вы можете использовать формулы из этой статьи. Также обратите внимание, что вы также можете настроить дисперсию, используя этот метод:)

У меня есть Java-код (на основе инфраструктуры Commons Math) для точной (медленной) и быстрой (менее точной) реализации этого дистрибутива с PDF, CDF, и отбор проб.

0 голосов
/ 18 мая 2010

Просмотр генерации нормальных случайных величин . Вы можете генерировать пары нормальных случайных величин X = N (0,1) и преобразовывать их в ЛЮБУЮ нормальную случайную переменную Y = N (m, s) (Y = m + s * X).

...