Як користуватись методом Монте-Карло

Як користуватись методом Монте-Карло

Як користуватись методом Монте-Карло

Що таке моделювання методом Монте-Карло?

Моделювання методом Монте-Карло – це математичний метод, який прогнозує можливі наслідки невизначеної події. Комп'ютерні програми використовують цей метод для аналізу даних за минулі періоди та прогнозування низки майбутніх результатів на основі вибору дій. Наприклад, якщо ви хочете оцінити продаж нового продукту за перший місяць, то можете надати програмі моделювання методом Монте-Карло свої історичні дані про продаж. Програма оцінюватиме різні обсяги продажів на основі таких факторів, як загальні ринкові умови, ціна продукту та рекламний бюджет.

Чому важливо використовувати моделювання методом Монте-Карло?

Моделювання методом Монте-Карло – це імовірнісна модель, яка може включати у прогнозування елемент невизначеності чи випадковості. Коли ви використовуєте для моделювання результату імовірнісну модель, ви щоразу отримуєте різні результати. Наприклад, відстань між будинком та офісом фіксована. Однак ймовірнісне моделювання може передбачити різний час у дорозі з урахуванням таких факторів, як затори, погана погода та поломки транспортних засобів.

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

Переваги моделювання методом Монте-Карло

Моделювання методом Монте-Карло забезпечує безліч можливих результатів та ймовірність кожного з великого пулу випадкових вибірок даних.Воно дає чіткішу картину, ніж детермінований прогноз. Наприклад, для прогнозування фінансових ризиків потрібен аналіз десятків чи сотень чинників ризику. Фінансові аналітики використовують моделювання методом Монте-Карло визначення ймовірності кожного можливого результату.

Історія моделювання методом Монте-Карло

Джон фон Нейман та Станіслав Улам винайшли моделювання методом Монте-Карло, або метод Монте-Карло, у 1940-х роках. Вони назвали його на честь знаменитого грального закладу в Монако, тому що цей метод має такі самі характеристики випадковості, як і гра в рулетку.

Якими є сценарії використання моделювання методом Монте-Карло?

Компанії використовують методи Монте-Карло для оцінки ризиків та складання точних довгострокових прогнозів. Нижче наведено деякі приклади використання.

Для бізнесу

Керівники бізнесу використовують методи Монте-Карло для прогнозування реалістичних сценаріїв під час прийняття рішень. Наприклад, маркетологу потрібно вирішити, чи можна збільшити рекламний бюджет онлайн-курсу йоги. Вони можуть використовувати математичну модель Монте-Карло для невизначених факторів або змінних, такі як наступні.

  • Плата за передплату
  • Вартість реклами
  • Тариф реєстрації
  • Утримання

Потім в результаті моделювання буде одержано прогноз впливу змін на ці фактори, і по ньому можна буде визначити, чи рішення є прибутковим.

Фінанси

Фінансові аналітики часто становлять довгострокові прогнози цін на акції, а потім радять своїм клієнтам відповідні стратегії. При цьому вони мають враховувати ринкові фактори, які можуть призвести до різких змін інвестиційної вартості.У результаті вони використовують моделювання методом Монте-Карло для прогнозування можливих результатів на підтримку своїх стратегій.

Онлайн-ігри

Індустрія онлайн-ігор та ставок регулюється строгими правилами. Клієнти очікують, що ігрове програмне забезпечення буде чесним і імітуватиме характеристики свого фізичного аналога. Тому програмісти ігор використовують метод Монте-Карло для моделювання результатів та забезпечення чесної гри.

Інженерія

Інженери повинні забезпечити надійність та стійкість кожного створюваного ними продукту та кожної створюваної ними системи, перш ніж зробити їх доступними для громадськості. Вони використовують методи Монте-Карло для моделювання можливої ​​частоти відмов продукту на основі існуючих змінних. Наприклад, інженери-механіки використовують моделювання методом Монте-Карло з метою оцінки довговічності двигуна за його роботи за різних умов.

Як працює моделювання методом Монте-Карло?

Основний принцип моделювання методом Монте-Карло полягає в ергодичності, що описує статистичну поведінку точки, що рухається в замкнутій системі. У кінцевому підсумку точка, що рухається, пройде через всі можливі розташування в ергодичній системі. На цьому засноване моделювання методом Монте-Карло, при якому комп'ютер проводить стільки моделювань, скільки буде достатньо для отримання кінцевого результату за різних вхідних даних.

Наприклад, ймовірність приземлення шестигранної гральної кістки на одну зі сторін становить одну шосту. Якщо ви кидаєте кістку шість разів, то вона може не приземлитися на шість різних сторін. Тим не менш, кидаючи її нескінченно, ви досягнете для кожної із сторін теоретичної ймовірності в одну шосту.Точність результату пропорційна кількості моделювань. Іншими словами, виконання 10 000 моделювань дає більш точні результати, ніж 100 моделювань.

Моделювання методом Монте-Карло працює аналогічно. Воно використовує комп'ютерну систему щодо достатньої кількості моделювань із єдиною метою отримання різних результатів, імітують реальні. Система використовує генератори випадкових чисел відтворення невизначеності, властивої вхідним параметрам. Генератори випадкових чисел – це комп'ютерні програми, створюють непередбачувану послідовність випадкових чисел.

Порівняння моделювання методом Монте-Карло з машинним навчанням

Машинне навчання (ML) – це комп'ютерна технологія, яка на основі великої вибірки вхідних та вихідних даних дозволяє програмному забезпеченню «зрозуміти» кореляцію між ними. З іншого боку, моделювання методом Монте-Карло використовує вибірки вхідних даних і відому математичну модель для прогнозування можливих результатів, що у системі. Моделі машинного навчання використовуються для тестування та підтвердження результатів моделювання методом Монте-Карло.

Які компоненти охоплюють моделювання методом Монте-Карло?

Аналіз методом Монте-Карло використовує вхідні змінні, вихідні змінні та математичну модель. Комп'ютерна система вводить незалежні змінні математичну модель, моделює їх і створює залежні змінні.

Вхідні змінні

Вхідні змінні – це випадкові значення, що впливають результат моделювання методом Монте-Карло. Наприклад, якість виготовлення і температура – це вхідні змінні, що впливають на довговічність смартфона.Вхідні змінні можна виразити як діапазон вибірок випадкових значень, щоб за допомогою методів Монте-Карло можна було моделювати результати з випадковими вхідними значеннями.

Вихідна змінна

Вихідна змінна є наслідком аналізу методом Монте-Карло. Наприклад, очікуваний термін служби електронного пристрою – вихідна змінна, значення якої становить 6 місяців або 2 роки. Програмне забезпечення для моделювання методом Монте-Карло показує вихідну змінну у вигляді гістограми або графіка, на якому результати розподілені в безперервному діапазоні горизонтальної осі.

Математична модель

Математична модель – це рівняння, що описує взаємозв'язок між вихідними та вхідними змінними у математичній формі. Приклад - математична модель прибутковості: Прибуток = Дохід - Витрати.

Програмне забезпечення для моделювання методом Monte Carlo замінює доходи та витрати ймовірними значеннями, залежно від типу розподілу ймовірностей. Потім він повторює моделювання для отримання високоточного результату. Якщо математичну модель включено безліч випадкових величин, то моделювання методом Монте-Карло може проводитись кілька годин.

Що таке розподіл ймовірностей при моделюванні методом Монте-Карло?

Розподіл ймовірностей – це статистичні функції, що становлять діапазон значень, розподілених між межами. Фахівці зі статистики використовують розподіл ймовірностей для прогнозування можливої ​​появи невизначеної змінної, яка може складатися з дискретних або безперервних значень.

Дискретний розподіл ймовірностей представлений цілими числами чи послідовністю кінцевих чисел. Імовірність появи кожного з дискретних значень більша за нуль. Статистики виводять дискретне розподіл ймовірностей як таблиці, а безперервне – як кривої між двома заданими точками на осі x графіка. Нижче наведено поширені типи розподілу ймовірностей, які можна змоделювати методом Монте-Карло.

Нормальний розподіл

Нормальний розподіл, також відомий як дзвонова крива, має симетричну форму дзвона і представляє більшість реальних подій. Імовірність випадкового значення висока на медіані і значно зменшується у напрямку до обох кінців дзвоноподібної кривої. Наприклад, повторна випадкова вибірка ваги учнів у певному класі дає нормальну діаграму розподілу.

Рівномірний розподіл

Рівномірний розподіл означає статистичне уявлення випадкових величин з ймовірністю. При побудові графіка рівномірно розподілені змінні відображаються у вигляді горизонтальної прямої, що проходить через діапазон допустимих значень. Наприклад, рівномірний розподіл представляє ймовірність кочення та зупинки з кожного боку гральної кістки.

Трикутний розподіл

Трикутний розподіл використовує для подання випадкових величин мінімальні, максимальні та найімовірніші значення. Його ймовірність досягає максимуму при найбільш ймовірному значенні. Наприклад, компанії використовують трикутний розподіл для прогнозування майбутніх обсягів продажів, встановлюючи мінімальне, максимальне та пікове значення трикутника.

З яких етапів складається моделювання методом Монте-Карло?

Процес моделювання методом Монте-Карло складається з наступних кроків.

Створення математичної моделі

Складіть рівняння, що поєднує вихідні та вхідні змінні. Математичні моделі можуть змінюватись від базових бізнес-формул до складних наукових рівнянь.

Визначте вхідні значення

Виберіть один із різних типів розподілу ймовірностей для представлення вхідних значень. Наприклад, робоча температура мобільного телефону, швидше за все, буде дзвоноподібною кривою, оскільки пристрій більшу частину часу працює при кімнатній температурі.

Створіть зразок набору даних

Створіть великий вибір випадкових вибірок на основі обраного розподілу ймовірностей. Для отримання точних результатів розмір вибірки повинен бути в діапазоні 100 000.

Налаштування програмного забезпечення для моделювання методом Монте-Карло

Для налаштування та запуску програмного забезпечення для моделювання методом Монте-Карло використовуйте вхідні зразки та математичну модель. Час отримання результатів може змінюватись в залежності від кількості вхідних змінних, і вам, можливо, доведеться дочекатися результатів.

Проаналізуйте результати

Перевірте змодельовані результати, щоб дізнатися, як вихідні дані розподіляються на гістограмі. Використовуйте статистичні інструменти для розрахунку таких параметрів, як середнє значення, стандартне відхилення та варіація, щоб визначити, чи відповідає результат вашим очікуванням.

У чому складність моделювання методом Монте-Карло?

З використанням моделювання методом Монте-Карло виникають дві поширені проблеми.

  • Моделювання методом Монте-Карло дуже залежить від вхідних значень та розподілу. Якщо при виборі вхідних даних та розподілу ймовірностей допущені помилки, результати можуть виявитися неточними.

Для проведення експериментів з використанням методу Монте-Карло можуть знадобитися надлишкові обчислювальні потужності. Обчислення з використанням методу Монте-Карло на окремому комп'ютері можуть тривати години або дні.

Як AWS Batch може допомогти у моделюванні методом Монте-Карло?

AWS Batch – це сервіс, який аналітики даних використовують для пакетного запуску робочих навантажень у середовищах AWS. Аналітики даних використовують AWS Batch для автоматичного масштабування ресурсів хмарних обчислень для моделювання методом Монте-Карло. Потім вони моделюють складні системи та змінні за менший час. AWS Batch має такі переваги.

  • Фахівці з обробки даних зосереджені на аналізі результатів, а чи не на управлінні розподілом ресурсів.
  • AWS Batch усуває необхідність ручного контролю та втручання при моделюванні методом Монте-Карло.
  • Немає необхідності інсталювати окреме програмне забезпечення для пакетних обчислень у середовищах AWS.

Створіть обліковий запис AWS і почніть використовувати метод Монте-Карло вже сьогодні.

Метод Монте-Карло та його точність

Під методом Монте-Карло розуміється чисельний метод рішення
математичних завдань з допомогою моделювання випадкових величин. Уявлення про історію методу та найпростіші приклади його застосування можна знайти у Вікіпедії.

У методі немає нічого складного. Саме ця простота пояснює популярність цього методу.

Метод має дві основні особливості. Перша – проста структура обчислювального алгоритму.Друга - помилка обчислень, як правило, пропорційна
де - деяка постійна, а - число випробувань. Зрозуміло, що досягти високої точності на такому шляху неможливо. Тому зазвичай кажуть, що метод Монте-Карло особливо ефективний під час вирішення тих завдань, у яких результат потрібен із невеликою точністю.

Однак те саме завдання можна вирішувати різними варіантами методу Монте-Карло, яким відповідають різні значення . Багато завдань вдається значно збільшити точність, вибравши спосіб розрахунку, якому відповідає значно менше значення .

Загальна схема методу

Припустимо, нам потрібно обчислити якусь невідому величину m. Спробуємо придумати таку випадкову величину, щоб. Нехай при цьому.
Розглянемо незалежних випадкових величин (реалізацій), розподіл яких збігаються з розподілом . Якщо досить велике, то відповідно до центральної граничної теореми розподіл суми буде приблизно нормальним з параметрами .

На основі Центральної граничної теореми (або якщо хочете граничної теореми Муавра-Лапласа) не важко отримати співвідношення:

де - функція розподілу стандартного нормального розподілу.

Це надзвичайно важливе для методу Монте-Карло співвідношення. Воно дає і спосіб розрахунку і оцінку похибки.

Насправді, знайдемо значень випадкової величини . З зазначеного співвідношення видно, що середнє арифметичне цих значень буде приблизно . Імовірно близька до помилка такого наближення не перевищує величини. Очевидно, ця помилка прагне до нуля зі зростанням.

Залежно від цілей останнє співвідношення використовується по-різному:

    Якщо взяти k=3, то отримаємо так зване «правило»:

Точність обчислень

Як видно з наведених вище співвідношень, точність обчислень залежить від параметра і величини середньоквадратичного відхилення випадкової величини .

У цьому пункті хотілося б зазначити важливість саме другого параметра. Найкраще це показати на прикладі. Розглянемо обчислення певного інтегралу.

Обчислення певного інтеграла еквівалентне обчисленню площ, що дає інтуїтивно зрозумілий алгоритм обчислення інтегралу (див. статтю у Вікіпедії). Я розгляну ефективніший метод (приватний випадок формули для якого, втім, теж є у статті з Вікіпедії). Однак не всі знають, що замість рівномірно розподіленої випадкової величини в цьому методі можна використовувати практично будь-яку випадкову величину, задану на тому самому інтервалі.

Отже, потрібно обчислити певний інтеграл:

Виберемо довільну випадкову величину із щільністю розподілу, визначеною на інтервалі. І розглянемо випадкову величину.

Математичне очікування останньої випадкової величини дорівнює:

Таким чином, отримуємо:

Останнє співвідношення означає, що якщо вибрати значень , то за досить великого :

Таким чином, для обчислення інтеграла можна використовувати практично будь-яку випадкову величину . Але дисперсія , а водночас і оцінка точності, залежить від цього яку випадкову величину взяти щодо розрахунків.

Можна показати, що матиме мінімальне значення, коли пропорційно |g(x)|. Вибрати таке значення у випадку дуже складно (складність еквівалентна складності розв'язуваного завдання), але керуватися цим міркуванням варто, тобто. вибирати розподіл ймовірностей формою схоже з модулем інтегрованої функції.

Чисельний приклад

Теорія, звичайно, справа хороша, але давайте розглянемо чисельний приклад: ; ; .

Обчислимо значення інтеграла із застосуванням двох різних випадкових величин.

У першому випадку використовуватимемо рівномірно розподілену випадкову величину на [a,b], тобто. .

У другий випадок візьмемо випадкову величину з лінійної щільністю на [a,b], тобто. .

Ось графік, зазначених функцій

Неважко бачити, що лінійна густина краще відповідає функції .

restart; with(Statistics): with(plots): #вихідні функції g:=x->cos(x): a:=0: b:=Pi/2: N:=10000: #щільності розподілів p1:=x-> piecewise(x>=a and xpiecewise(x>=a and x  

Точне значення інтеграла легко обчислити аналітично, воно дорівнює 1.

Результати одного моделювання при:

Для рівномірно розподіленої випадкової величини: .

Для випадкової величини з лінійною густиною розподілу: .

У першому випадку відносна похибка понад 21%, тоді як у другому 2.35%. Точність у першому випадку дорівнює 0.459, тоді як у другому – 0.123.

Думаю, цей модельний приклад показує важливість вибору випадкової величини у методі Монте-Карло. Вибравши правильну випадкову величину, можна отримати більш високу точність обчислень, при меншій кількості ітерацій.

Звичайно, так не обчислюють одновимірні інтеграли, для цього є точніші квадратурні формули. Але ситуація змінюється під час переходу до багатовимірним інтегралам, т.к. квадратурні формули стають громіздкими та складними, а метод Монте-Карло застосовується лише з невеликими змінами.

Кількість ітерацій та генератори випадкових чисел

Не важко бачити, що точність обчислень залежить кількості випадкових величин включених у суму. Причому для збільшення точності обчислень у 10 разів потрібно збільшити у 100 разів.

При вирішенні деяких завдань для отримання прийнятної точності оцінки потрібно брати дуже велику кількість. А враховуючи, що метод часто працює дуже швидко, то реалізувати останнє за сучасних обчислювальних можливостей зовсім не складно. І виникає спокуса просто збільшити число.

Якщо як джерело випадковості використовується деяке фізичне явище (фізичний датчик випадкових чисел), все працює відмінно.

Часто для обчислень методом Монте-Карло застосовують датчики псевдовипадкових чисел. Головна особливість таких генераторів – наявність певного періоду.

Метод Монте-Карло можна використовувати при значеннях, що не перевищують (краще багато менших), період вашого генератора псевдовипадкових чисел. Останній факт випливає із умови незалежності випадкових величин, що використовуються при моделюванні.

При проведенні великих розрахунків необхідно переконатися, що властивості генератора випадкових чисел дозволяють провести ці розрахунки. У стандартних генераторах випадкових чисел (у більшості мов програмування) період найчастіше вбирається у 2 ступеня розрядності операційної системи, або навіть менше. При використанні таких генераторів необхідно бути дуже обережним. Краще вивчити рекомендації Д.Кнута, і побудувати свій генератор, який має відомий і досить великий період.

Література


Популярні лекції з математики 1968. Випуск 46. Соболь І.М. Метод Монте-Карло. М.: Наука, 1968. - 64 с.

Подібні статті

Останні статті

Категорії