Если вы можете произвести выборку из заданного распределения со средним значением 0 и дисперсией 1, то вы можете легко выполнить выборку из преобразования масштаба расположения этого распределения, которое имеет среднее значение и дисперсию . Если является выборкой из среднего распределения 0 и дисперсии 1, то
является выборкой со средним значением и дисперсией . Итак, все, что вам нужно сделать, это масштабировать переменную по стандартному отклонению (квадратный корень из дисперсии), прежде чем добавить среднее .μσ2x
σx+μ
μσ2σμ
Как вы на самом деле получаете симуляцию из нормального распределения со средним 0 и дисперсией 1 - это отдельная история. Интересно и интересно узнать, как реализовать такие вещи, но используете ли вы статистический пакет или язык программирования или нет, я рекомендую вам получить и использовать подходящую функцию или библиотеку для генерации случайных чисел. Если вы хотите получить совет о том, какую библиотеку использовать, вы можете добавить конкретную информацию о том, какой язык (языки) вы используете.
Редактировать: В свете комментариев, некоторых других ответов и того факта, что Fixee принял этот ответ, я приведу некоторые подробности о том, как можно использовать преобразования однородных переменных для получения нормальных переменных.
- Одним из методов, уже упомянутых в комментарии VitalStatistix , является метод Бокса-Мюллера, который принимает две независимые однородные случайные величины и создает две независимые нормальные случайные величины. Аналогичный метод, позволяющий избежать вычисления двух трансцендентных функций sin и cos за счет еще нескольких симуляций, был опубликован в качестве ответа francogrex .
- Совершенно общим методом является преобразование равномерной случайной величины обратной функцией распределения. Если равномерно распределено на [ 0 , 1 ], то
Φ - 1 ( U )
имеет стандартное нормальное распределение. Хотя для Ф - 1 нет явной аналитической формулы , ее можно вычислить с помощью точных численных приближений. Текущая реализация в R (последнее, что я проверял) использует эту идею. Метод концептуально очень прост, но требует точной реализации Φ - 1 , которая, вероятно, не так широко распространена, как (другие) трансцендентные функцииU[0,1]
Φ−1(U)
Φ−1Φ−1журнал , грех и соз .
- В нескольких ответах упоминается возможность использования центральной предельной теоремы для аппроксимации нормального распределения как среднего значения равномерных случайных величин. Это обычно не рекомендуется. Представленные аргументы, такие как соответствие среднего 0 и дисперсии 1, а также соображения о поддержке распределения не убедительны. В упражнении 2.3 «Введение методов Монте-Карло в R» Кристиана П. Роберта и Джорджа Казеллы этот генератор называется устаревшим, а приближение называется очень плохим .
- Существует множество других идей. Глава 3 и, в частности, раздел 3.4, "Искусство компьютерного программирования", том. 2 Donald E. Knuth - это классическая ссылка на генерацию случайных чисел. Брайан Рипли написал « Компьютерное поколение случайных величин: учебное пособие» , которое может быть полезным. Также рекомендуется книга, упомянутая Робертом и Казеллой, или, возможно, глава 2 в их другой книге «Статистические методы Монте-Карло».
В конце концов, правильно реализованный метод не лучше, чем используемый генератор псевдослучайных чисел. Лично я предпочитаю полагаться на специальные библиотеки, которые, на мой взгляд, заслуживают доверия. Я почти всегда полагаюсь на методы, реализованные в R, либо непосредственно в R, либо через API в C / C ++. Очевидно, что это решение не для всех, но я недостаточно знаком с другими библиотеками, чтобы рекомендовать альтернативы.