ГоловнаСтаттіData Science

Метод Монте-Карло: Від квадрата та кола до ризику портфеля

Закон великих чисел, правило 1/sqrt(N), що робить багатовимірні задачі вирішуваними, і як один і той же цикл семплювання оцінює фінансовий ризик за допомогою геометричного броунівського руху.

mysimulator teamОновлено — червень 2026≈ 9 хв читання▶ Відкрити симуляцію

Перетворення обчислення на експеримент

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

жива демонстрація · пов'язана симуляція● LIVE

π из квадрата и четверти круга

Самый простой конкретный случай, и тот, который дает всей семье интуицию: вписать четверть круга радиуса 1 в квадрат единицы и случайно бросать точки равномерно по квадрату. Вероятность того, что точка попадет внутрь четверти круга, равна отношению двух площадей, π/4, поэтому подсчет попаданий и масштабирование дают оценку для π:

let inside = 0; for (let i = 0; i That last property — the error's total indifference to dimension — is the entire reason Monte Carlo matters beyond toy demonstrations. A grid-based numerical integration rule needs mᵈ points to place m points along each of d axes, so its cost explodes with dimension (the curse of dimensionality); a Monte Carlo estimate's 1/√n error bound literally does not contain d. In two dimensions that indifference to dimension is a mild curiosity; in the twenty, two hundred or two thousand dimensions of a real risk model, a Bayesian posterior or a light-transport integral, it is very often the only method that works at all.

let inside = 0;
for (let i = 0; i < n; i++) {
  const x = Math.random(), y = Math.random();
  if (x*x + y*y <= 1) inside++;
}
piEstimate = 4 * inside / n;

standard error ≈ 1.64 / sqrt(n)      (falls with 1/sqrt(n), independent of dimension)

Загальний інтегрування: будь-який інтеграл є площею

Нижче не зазначено нічого конкретного щодо кіл. Будь-який визначений інтеграл ∫f(x)dx по межевій області можна записати як очікувану величину, E[f(X)] · (об’єм області), де X витягнуто рівномірно з цієї області — таким чином, та сама трилінія, яка оцінює π, безпосередньо узагальнюється для оцінки будь-якого інтеграла, в будь-якій кількості вимірів, просто відбираючи правильну область і середнє значення f замість підрахунку ударів:

∫_a^b f(x) dx  ≈  (b − a) · (1/n) Σ f(Xi),     Xi ~ Uniform(a, b)

Від площі до грошей: Вартість у ризику (VaR)

Однакова техніка відповідає на зовсім інше питання в фінансах: який найгірший збиток може зазнати портфель протягом певного горизонту часу, з певною ймовірністю — його Вартість у ризику (VaR)? Замість припускати закритий вигляд розподілу майбутньої вартості портфеля, Monte Carlo VaR моделює тисячі правдоподібних шляхів майбутніх цін безпосередньо. Стандартна модель для ціни одного активу — геометричне брутування (GBM), стохастичне диференціальне рівняння

dS = μ S dt + σ S dW (μ = терт, σ = волатильність, dW = Wiener increment) розділена (Ейлер-Маруяма / точний GBM крок): S(t+Δt) = S(t) · exp( (μ − σ²/2)Δt + σ√Δt · Z ), Z ~ N(0,1) Моделюйте тисячі незалежних шляхів цін до дати горизонту, обчислюйте прибуток або збитки портфеля на кожному змодельованому шляху та сортуйте отриманий розподіл результатів. 95% VaR — це просто збиток на 5-му процентилі цього змодельованого розподілу — збиток, який очікується перевищуватися лише 5% часу. Цей Monte Carlo підхід обробляє залежні від шляху інструменти (опціони з можливістю раннього виконання або бар’єри, структуровані продукти), для яких неможливі аналітичні формули, на шкоду необхідності достатньої кількості змодельованих шляхів для достовірної оцінки хвостового процентиля — оскільки хвіст за визначенням — це там, де у нас найменше зразків.

Очікуваний недоотриманий прибуток (також відомий як Conditional VaR) йде ще на один крок далі і запитує: якщо збиток перевищив порогове значення VaR, який є його середній розмір? Він відповідає на питання, яке VaR не може — наскільки погано є погано, після порогу — і оцінюється за допомогою тих самих змодельованих шляхів, просто усереднюючи збитки, які падають за межі процентиля VaR, замість того, щоб повідомляти лише про цей один процентиль.

dS = μ S dt + σ S dW                        (μ = drift, σ = volatility, dW = Wiener increment)

discretised (Euler–Maruyama / exact GBM step):
S(t+Δt) = S(t) · exp( (μ − σ²/2)Δt + σ√Δt · Z ),     Z ~ N(0,1)

Оцінка Monte Carlo: як зменшити дисперсію

Принцип 1/√n є незмінним, тому єдиний спосіб отримати точнішу оцінку – це зменшити дисперсію обчислення. Існує кілька методів, які дозволяють досягти цього при будь-якому бюджеті зразків: важливе семплювання (importance sampling) зосереджується на найбільш значущих областях простору ймовірностей, переважно в хвостовій частині функції втрат для оцінки VaR; антитетичні варіації пари випадкового вибірки Z із її дзеркальним -Z, що призводить до часткової скасування помилок; стратифікований вибір зразків забезпечує рівномірне покриття простору ймовірностей, а не випадкове; контрольні варіації використовують корельовану величину з відомим середнім значенням для зменшення випадкового компоненту оцінки.

Оцінка Монте-Карло: важливість генератора та репродуктивності

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

Крім того, необхідно чітко фіксувати seed генератора випадкових чисел. Це дозволяє відтворити результат та провести аудит процесу обчислення. Без цього неможливо буде визначити причину розбіжностей у результатах.

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

Часті запитання

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

Метод на основі сітки потребує кількості точок, яка зростає як (точок вздовж осі) в степені розмірності, тому його вартість вибухає зі збільшенням розмірності – це прокляття розмірності. Помилкова межа Монте-Карло, приблизно 1/sqrt(n), не залежить від розмірності: одна й та сама кількість випадкових зразків дає приблизно ту ж точність, незалежно від того, чи інтегрується ви в 2 розміри або 200, що пояснює його домінування у високорозмірних проблемах, таких як моделювання ризиків і транспорту світла.

Що таке Value at Risk (VaR) на рівні 95%?

Це рівень втрат, який перевищують змодельовані результати портфеля лише 5% часу протягом обраного горизонту – втрата в 5-му персентилі розподілу прибутків і збитків. Це не говорить нічого про те, наскільки великими можуть бути втрати за межами цього порогу; це питання вирішує Expected Shortfall (Conditional VaR), який усереднює втрати, які перевищують поріг VaR.

Чому точність Монте-Карло покращується так повільно з більшою кількістю зразків?

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

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте Monte Carlo Estimation і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію Monte Carlo Estimation

Що ви знайшли?

Додати кроки відтворення (опційно)