Якщо ви можете взяти вибірку з даного розподілу із середнім значенням 0 та дисперсією 1, то ви можете легко взяти вибірку з перетворення масштабу-місця цього розподілу, яке має середнє значення та дисперсію . Якщо є вибіркою із середнього значення 0 та дисперсії 1, то
є вибіркою із середнім та дисперсією . Отже, все, що вам потрібно зробити, - це масштабувати змінну за стандартним відхиленням (квадратний корінь дисперсії) перед додаванням середнього .мкσ2х
σх + мк
мкσ2σмк
Як ви насправді отримуєте моделювання від звичайного розподілу із середнім 0 та дисперсією 1 - це вже інша історія. Приємно і цікаво знати, як реалізувати такі речі, але ви використовуєте статистичний пакет чи мову програмування чи ні, я рекомендую вам отримати та використовувати відповідну функцію чи бібліотеку для генерації випадкових чисел. Якщо ви хочете отримати поради щодо того, яку бібліотеку використовувати, ви можете додати конкретну інформацію, якою мовою / програмуванням ви користуєтесь.
Редагувати: У світлі коментарів, деяких інших відповідей та того факту, що Fixee прийняв цю відповідь, я наведу ще детальну інформацію про те, як можна використовувати перетворення уніфікованих змінних для отримання нормальних змінних.
- Один з методів, вже згадуваний у коментарі VitalStatistix , - це метод Бокса-Мюллера, який бере дві незалежні рівномірні випадкові величини та виробляє дві незалежні нормальні випадкові величини. Аналогічний метод, який дозволяє уникнути обчислення двох трансцендентальних функцій sin і cos за рахунок ще декількох симуляцій, був опублікований як відповідь francogrex .
- Цілком загальний метод - це перетворення рівномірної випадкової величини функцією оберненого розподілу. Якщо рівномірно розподілено на то
має стандартний нормальний розподіл. Хоча для немає явної аналітичної формули , вона може бути обчислена точними числовими наближеннями. Поточна реалізація в R (востаннє я перевірив) використовує цю ідею. Метод концептуально дуже простий, але вимагає точної реалізації , що, мабуть, не настільки поширене, як (інші) трансцендентні функції log , sin та cos .[ 0 , 1 ] Φ - 1 ( U ) Φ - 1 Φ - 1U[ 0 , 1 ]
Φ-1( U)
Φ- 1Φ- 1
- У кількох відповідях згадується можливість використання центральної граничної теореми для апроксимації нормального розподілу як середнього рівня однорідних випадкових величин. Це, як правило, не рекомендується. Представлені аргументи, такі як відповідність середнього значення 0 та дисперсії 1, та міркування підтримки розподілу не є переконливими. У вправі 2.3 в "Введення методів Монте-Карло з R" Крістіаном П. Робертом та Джорджем Казеллою цей генератор називають застарілим, а наближення називається дуже поганим .
- Існує дивовижна кількість інших ідей. Глава 3 і, зокрема, Розділ 3.4, у «Мистецтві комп’ютерного програмування», т. 2 Дональд Е. Кнут - класична довідка про генерацію випадкових чисел. Брайан Ріплі написав Комп'ютерне покоління випадкових змінних: Навчальний посібник , який може бути корисним. Книга, згадана Робертом і Казеллою, чи, можливо, Глава 2 в їхній іншій книзі «Статистичні методи Монте-Карло», також рекомендується.
Зрештою, правильно реалізований метод не кращий від рівномірного генератора псевдовипадкових чисел. Особисто я вважаю за краще покладатися на бібліотеки спеціального призначення, які я вважаю надійними. Я майже завжди покладаюся на методи, реалізовані в R, або безпосередньо в R, або через API в C / C ++. Очевидно, що це рішення не для всіх, але я недостатньо знайомий з іншими бібліотеками, щоб рекомендувати альтернативи.