Вычислительно простое псевдогауссовское распределение с различным средним значением и стандартным отклонением?

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

псевдогауссово распределение

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

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

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


person Justin L.    schedule 14.05.2010    source источник


Ответы (3)


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

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

person nkrkv    schedule 14.05.2010
comment
Я никогда не говорил, что хочу нормальную кривую; просто функция вероятности, имеющая форму, аналогичную той, что имеет среднее значение = -2 на связанном изображении. Я посмотрю на них, спасибо =) - person Justin L.; 14.05.2010
comment
Эта форма все еще нормальная и, следовательно, симметричная. Рисунок вводит в заблуждение, поскольку предполагает, что диапазон ограничен видимой частью показанной оси x, что не так, он простирается до бесконечности в обоих направлениях. Вероятность вытягивания из дальних решек становится фантастически малой, но остается отличной от нуля. На практике вы, вероятно, могли бы обрезать, но ваше распределение все равно не было бы таким, как вы хотите. Я подозреваю, что самым простым подходом будет усреднение треугольного распределения с желаемой модой, но мне нужно проработать это, чтобы быть уверенным. - person walkytalky; 14.05.2010
comment
Нет, если подумать, это тоже будет иметь тенденцию к норме — здравствуйте, Центральная предельная теорема! - person walkytalky; 14.05.2010

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

person Grembo    schedule 18.05.2010

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

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

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

person Andrew Mao    schedule 25.01.2013