Моделирование методом Монте-Карло
Что такое моделирование методом Монте-Карло?
Моделирование Монте-Карло, также известное как метод Монте-Карло или многократное имитационное моделирование вероятностей, представляет собой математический метод, с помощью которого можно оценить возможные результаты неопределенного события. Метод Монте-Карло был изобретен Джоном фон Нейманом и Станиславом Уламом во время Второй мировой войны с целью улучшения процесса принятия решений в условиях неопределенности. Название методу дал известный своими казино город Монако, поскольку в основе данного подхода к моделированию лежит принцип генерации случайных чисел, применяемый в рулетке.
Метод моделирования Монте-Карло нашел свое применение в оценке риска для разнообразных практических задач, включая искусственный интеллект, котировки акций, прогнозирование продаж, управление проектами и ценообразование. Кроме того, данный метод обладает рядом преимуществ по сравнению с прогнозными моделями с фиксированными входными значениями, включая возможность проведения анализа чувствительности или расчета корреляции входных значений. Анализ чувствительности позволяет оценить влияние отдельных входных значений на определенный результат, а корреляция — понять взаимосвязи между любыми входными переменными.
Как работает моделирование методом Монте-Карло?
В отличие от обычной модели прогнозирования, метод Монте-Карло предсказывает набор результатов на основе предполагаемого диапазона значений, а не набора фиксированных входных значений. Другими словами, моделирование методом Монте-Карло создает модель возможных результатов с использованием распределения вероятностей, например равномерного или нормального распределения, для любой переменной, которая содержит в себе элемент неопределенности. Затем выполняется повторное вычисление результатов с другими наборами случайных чисел в диапазоне от минимального до максимального значений. В типичном эксперименте Монте-Карло данная операция повторяется несколько тысяч раз для создания большого числа вероятных результатов.
Кроме того, высокая точность метода Монте-Карло позволяет применять его для долгосрочного прогнозирования. С увеличением количества входных данных растет и число прогнозов, что позволяет с большей точностью прогнозировать результаты на более отдаленные сроки. Результатом выполнения метода Монте-Карло является диапазон возможных результатов с указанием вероятности каждого события.
В качестве простого примера моделирования методом Монте-Карло можно привести расчет вероятности при бросании двух стандартных игральных костей. Существует 36 возможных комбинаций двух костей. Исходя из этого, можно вручную рассчитать вероятность определенного результата. Для получения более точного прогноза можно 10000 раз повторить бросок костей, используя метод Монте-Карло.
Как применяется метод Монте-Карло
Независимо от используемого инструмента, метод Монте-Карло состоит из трех основных шагов:
Изменяя базовые параметры моделирования, метод Монте-Карло можно повторять сколько угодно раз. Также для вычисления разброса в выборке можно рассчитать дисперсию и стандартное отклонение, которые традиционно используются для оценки разброса. Дисперсия переменной представляет собой математическое ожидание квадрата разности между переменной и ее ожидаемым значением. Стандартное отклонение вычисляется как квадратный корень дисперсии. Как правило, чем меньше дисперсия, тем лучше.
Более подробная информация о моделировании методом Монте-Карло приведена здесь (внешняя ссылка).
Моделирование методом Монте-Карло и IBM
Для моделирования методом Монте-Карло можно использовать разнообразные инструменты, такие как Microsoft Excel, однако для проведения сложных статистических расчетов рекомендуется выбирать более комплексные программные продукты, например IBM SPSS Statistics, оптимизированные для анализа рисков и имитаций по методу Монте-Карло. IBM SPSS Statistics — высокопроизводительная программная платформа статистического анализа с надежным набором функций, которые помогают организациям извлекать ценную информацию из своих данных.
Возможности SPSS Statistics:
Например, с помощью модуля имитации в SPSS Statistics можно моделировать различные суммы рекламного бюджета и оценивать влияние на общий объем продаж. Результаты моделирования могут служить основой для принятия решений об увеличении расходов на рекламу для достижения целевых показателей объема продаж. Более подробная информация о применении IBM SPSS Statistics для моделирования методом Монте-Карло приведена здесь (внешняя ссылка).
IBM Cloud Functions также предоставляет возможность выполнять моделирование методом Монте-Карло. IBM Cloud Functions — бессерверная платформа «функция как услуга» (FaaS), выполняющая код в ответ на входящие события. Благодаря функциям IBM Cloud весь цикл имитационного моделирования методом Монте-Карло занимает всего 90 секунд с выполнением 1000 параллельных вызовов. Более подробная информация об использовании инструментов IBM для моделирования методом Монте-Карло приведена здесь.
Для получения дополнительной информации о моделировании методом Монте-Карло зарегистрируйте IBMid и создайте учетную запись IBM Cloud.
Использование метода Монте-Карло для создания портфеля
Начинающие (да и не только) инвесторы часто задаются вопросом о том, как отобрать для себя идеальное соотношение активов входящих в портфель. Часто (или не очень, но знаю про двух точно) у некоторых брокеров эту функцию выполняет торговый робот. Но заложенные в них алгоритмы не раскрываются.
Если сложить долю всех акций, входящих в портфель, то сумма должна стремиться к единице (а лучше быть равна). Дальше как обычно проведем подготовку данных для расчетов:
Теперь можно провести расчет для весов предложенных торговым роботом и узнать доходность данного портфеля за последник три года и стандартное отклонение.
Симуляция Монте-Карло
Первоначально небольшое вступительное слово о том, как используется метод Монте-Карла для оптимизации портфеля
Сначала акциям задаются случайные веса, после чего производится расчет доходности и стандартного отклонения. Полученные значения сохраняются. Следующим шагом случайным образом меняются веса (главное не забывать, что их сумма должна составлять единицу) и все повторяется — расчет и сохранение полученного значения. Количество итераций зависит от времени, мощностей компьютера для расчета и рисков, который готов принять инвестор. В этот раз попробуем провести 10000 расчетов для выявления портфеля с минимальным убытком и максимальным значением коэффициента Шарпа.
Теперь можно рассчитать портфель с максимальным коэффициентом Шарпа или минимальным риска.
Ну а самое важное представление можно получить, когда данные визуализируешь:
Портфель с максимальным коэффициентом Шарпа показан красной звездой, синей — с минимальным стандартным отклонением и зеленой — предложенный роботом. Как видно — портфель, предложенный роботом, не совпадает с этими показателями, но на каком остановиться портфеле — выбор остается за инвестором. А я постараюсь в конце года вернуться к сравнению портфелей. А сейчас все три портфеля находятся в просадке.
Моделирование методом Монте-Карло имеет множество применений в финансовой практике, связанных с анализом сложных случайных процессов, в том числе в финансовом планировании, стоимостной оценке рисков (VaR), оценке стоимости сложных опционов и других финансовых активов. Рассмотрим концепцию моделирования методом Монте-Карло в рамках изучения количественных методов по программе CFA.
Разобравшись в основах распределений вероятности, мы теперь готовы узнать о компьютерном методе, в котором вероятностные распределения играют важную роль. Этот метод называется моделированием методом Монте-Карло, статистическим моделированием или имитационным моделированием (англ. ‘Monte Carlo simulation’).
Моделирование методом Монте-Карло в области финансов предполагает использование компьютера для имитации функционирования сложной финансовой системы.
Характерной особенностью моделирования методом Монте-Карло является генерация большого числа случайных выборок из заданного распределения вероятностей или распределений, характеризующих риск в рассматриваемой системе.
Исследователь Стэнфордского университета Сэм Сэведж представил следующую довольно точную аналогию роли этого метода:
Так же, как встряхивание лестницы помогает нам оценить риски падения с лестницы, моделирование методом Монте-Карло позволяет экспериментировать с предлагаемой финансовой стратегией или политикой до ее фактического осуществления. Например, показатели инвестиционной деятельности можно оценить относительно эталона или обязательства.
Пенсионные планы с установленными выплатами часто предполагают вложение свободных активов в зависимости от запланированного погашения пенсионных обязательств.
Пенсионные обязательства представляют собой сложный случайный процесс. В финансовом планировании активов и обязательств с использованием метода Монте-Карло, функционирование пенсионных активов и обязательств моделируется на определенный временной период, с учетом допущений о том, как инвестируются активы и других случайных величин.
Ключевым моментом в этой имитации и методе Монте-Карло является распределение вероятностей для различных источников риска (в том числе процентных ставок и ставок доходности рынка ценных бумаг, в данном случае).
Последствия решений инвестиционной политики пенсионного фонда можно оценить с помощью моделирования на определенный период. Эксперимент можно повторить для другого набора допущений.
В приведенном ниже Примере (11) серия ставок доходности не достаточно велика, чтобы ответить на вопросы аналитиков о временных закономерностях фондового рынка, поэтому исследователи моделируют рыночную доходность, чтобы найти ответы на свои вопросы.
Моделирование методом Монте-Карло также широко используется для получения стоимостной оценки риска VaR. В этом случае мы моделируем показатель прибыли и убытков портфеля в течение определенного промежутка времени.
Повторные испытания в рамках моделирования (каждое испытание означает получение случайных наблюдений из распределения вероятностей) создают частотное распределение для оценки стоимости портфеля. Например, точка, которая определяет порог отсечения, по меньшей мере, 5% благоприятных моделируемых изменений, является 95%-ной оценкой риска VaR.
Чрезвычайно важным применением моделирования методом Монте-Карло является оценка сложных ценных бумаг, в частности, некоторых европейских опционов, для которых не существует аналитической формулы ценообразования.
Для других ценных бумаг, таких как ипотечные ценные бумаги со сложными встроенными опционами, моделирование методом Монте-Карло также является важным аналитическим инструментом.
Исследователи используют моделирование методом Монте-Карло, чтобы проверить свои модели и инструменты.
Насколько критично конкретное предположение об эффективности модели?
Поскольку мы управляем предположениями, когда делаем имитацию, мы можем выполнить моделирование методом Монте-Карло, чтобы исследовать чувствительность модели к изменению наших предположений.
Процесс моделирования методом Монте-Карло.
Чтобы понять технику моделирования методом Монте-Карло, давайте представим процесс в виде серии шагов.
Для того, чтобы проиллюстрировать эти шаги, мы рассмотрим пример использования метода Монте-Карло для оценки азиатского колл-опциона, не имеющего аналитической формулы ценообразования.
Шаг 1. Определите интересующие величины (стоимость опциона, например, или размер активов пенсионного плана) в терминах базовых случайных величин.
Базовой случайной величиной (или несколькими величинами) может быть цена акций опциона, рыночная стоимость пенсионных активов, или другие случайные величины, связанные с обязательствами по пенсионному плану.
Укажите первоначальные значения базовых случайных величин.
Для иллюстрации шагов, мы используем оценку азиатского колл-опциона: \( С_
Каждое имитационное испытание требует генерации случайной величины (итерация Шага 4).
Шаг 2. Определите временную шкалу. Возьмите календарный временной горизонт и разделить его на несколько подпериодов, общим числом \(K\).
Календарный период разделенный на \(K\) подпериодов, имеет временной инкремент (приращение времени) \(\Delta t\).
Шаг 3. Сделайте предположения о характере распределения для факторов риска, которые влияют на базовые случайные величины.
Например, цена акций является базовой случайной величиной для азиатского колл-опциона, поэтому нам нужна модель движения цен на акции. Допустим, мы выбираем следующую модель движения цен на акции, где \( Z_k \) обозначает стандартную нормальную случайную величину:
\(\Delta t\)(Цена акций) = (\( \mu \times \) Предыдущая цена акций \(\times \Delta t\)) + (\( \sigma \times \) Предыдущая цена акций \(\times Z_k \))
В данном случае, \( Z_k \) является фактором риска при моделировании. Выбирая значение \( \mu\) и \( \sigma\), мы контролируем распределение стоимости акций. Хотя в этом примере используется один фактор риска, данная имитация может иметь несколько факторов риска.
Шаг 4. С помощью компьютерной программы или функции Excel, сгенерируйте \(K\) случайные наблюдения для каждого фактора риска.
Шаг 5. Вычислите базовые случайные величины, используя случайные наблюдения, сгенерированные на Шаге 4.
Результатом описанной выше модели динамики цены акций будет \(K\) наблюдений изменений цены акций. Для преобразования этих изменений в \(K\) цен на акции необходим дополнительный расчет (с использованием первоначальных цен акций, определенных на Шаге 1).
Другой расчет вычисляет среднюю цену акций в течение срока действия опциона (т.е. сумма \(K\) цен на акции делятся на \(K\)).
Шаг 6. Рассчитайте интересующие величины.
В нашем примере, первый расчет определяет стоимость азиатского колл-опциона на момент исполнения, \( С_
Мы выполнили одно имитационное испытание (Нижний индекс \(i\) в \( С_
При моделировании методом Монте-Карло, в табличной форме записываются статистические данные каждого испытания, касающиеся распределения интересующих нас величин, в том числе их средние значения и стандартные отклонения.
Шаг 7. Итеративно возвращайтесь к Шагу 4, пока не выполните все \( I \) испытаний.
И, наконец, рассчитайте итоговые статистические данные для всех имитаций. Ключевым значением в нашем примере является среднее значение \( С_
Сколько имитационных испытаний необходимо выполнить?
Как правило, нам нужно увеличить количество испытаний на коэффициент 100, чтобы увеличить точность испытания на 1 знак.
В зависимости от задачи, могут потребоваться десятки тысяч испытаний, чтобы получить точность до 2 знаков после запятой (например, это требуется стоимости опциона).
Проведение большого количества испытаний не обязательно проблематично, учитывая нынешние вычислительные мощности (даже обычного пользовательского ПК). Необходимое число имитационных испытаний может быть уменьшено с использованием специальных процедур понижения дисперсии, но эта тема выходит за рамки данного чтения.
Генераторы случайных чисел и процедура генерации случайных наблюдений.
На Шаге 4 нашего примера, компьютер генерирует набор случайных наблюдений для стандартной нормальной случайной величины. Напомним, что для равномерного распределения все возможные исходы равновероятны.
Термин «генератор случайных чисел» (англ. ‘random number generator’) относится к алгоритму, который возвращает равномерно распределенные случайные числа между 0 и 1.
В контексте компьютерного моделирования, термин «случайное число» (англ. ‘random number’) относится к наблюдению из равномерного распределения.
Для других распределений в данном контексте используется термин «случайное наблюдение» (англ. ‘random observation’).
Числа, возвращаемые генераторами случайных чисел, зависят от «зерна» или начального значения (от англ. ‘seed’). Если то же самое зерно передается в качестве параметра в тот же генератор, он будет возвращать ту же самую последовательность случайных чисел.
Замечательным фактом является то, что случайные наблюдения из любого распределения можно получить с использованием равномерной случайной величины в диапазоне от 0 до 1.
Для того, чтобы лучше понять это, рассмотрим метод обратной трансформации случайных наблюдений (англ. ‘inverse transformation method’).
Предположим, что мы заинтересованы в получении случайных наблюдений для случайной величины \(X \), с кумулятивной функцией распределения \( F(x) \). Напомним, что \( F(x) \), рассчитанная в точке \(x\), представляет собой число между 0 и 1.
Предположим, что случайный исход этой случайной величины равен 3.21 и что \(F(3.21) = 0.25\) или 25%.
Определим обратную функцию \(F\) и назовем ее \( F^ <-1>\). Она может сделать следующее: подставим вероятность 0.25 в функцию \( F^ <-1>\), и она вернет случайный результат 3.21. Другими словами, \( F^<-1>(0.25)=3.21 \).
Для генерации случайных наблюдений величины \( X \), выполняются следующие шаги:
Генерация случайного наблюдения сама по себе является областью отдельного изучения, и здесь мы лишь кратко обсудили метод обратной трансформации.
Далее, в Примерах 11 и 12, мы проиллюстрируем, как моделирование методом Монте-Карло позволяет определить потенциальную выгоду от выбора момента сделки (рыночного тайминга).
Пример (11) определения потенциальной прибыли от рыночного тайминга: метод Монте-Карло (1).
Насколько точно инвестор должен прогнозировать бычий рынок (англ. ‘bull market’) и медвежий рынок (англ. ‘bear market’), чтобы получать прибыль?
Какой размер прибыли по сравнению со стратегией «покупать и держать» можно получить при заданной точности прогнозирования рынка?
Из-за большой изменчивости доходности активов, необходим огромный объем данных о доходности, чтобы получить статистически достоверные ответы на эти вопросы.
Поэтому исследователи Chua, Woodward и To (1987) выбрали метод Монте-Карло для определения потенциальной прибыли от рыночного тайминга. Их интересовали перспективы канадских инвесторов.
Чтобы понять их исследование, предположим, что в начале года инвестор прогнозирует, что в следующем году будет либо бычий рынок, либо медвежий рынок.
Инвестиционные результаты тех, кто использует рыночный тайминг можно сравнить с результатами тех, кто придерживается долгосрочной стратегии buy-and-hold. Долгосрочный инвестор получает рыночный доход ежегодно.
Для Chua и др. одним из интересующих показателей был выигрыш от рыночного тайминга. Они определили эту величину как среднюю доходность маркет-таймера за вычетом средней доходности долгосрочного инвестора.
С учетом этих параметров, моделируемая рыночная доходность будет:
\( R_
Используя второй набор 10 000 случайных стандартных нормальных наблюдений, историческую доходность канадских казначейских векселей, а также историческую корреляцию векселей и доходности акций, авторы сгенерировали 10 000 ставок доходности казначейских векселей.
Инвесторы могут обладать различными навыками и опытом прогнозировании бычьих и медвежьих рынков. Chua и др. охарактеризовали маркет-таймеров по точности прогнозирования бычьих рынков и точности прогнозирования медвежьих рынков.
Например, точность прогнозирования бычьего рынка в 50% означает, что, если маркет-таймер прогнозирует бычий рынок на следующий год, он оказывается прав только в половине случаев, что указывает на отсутствие навыка.
Мы можем смоделировать, насколько инвестор будет точен.
После генерации первого наблюдения для \( R_
Если наблюдение соответствует бычьему рынку, то 0.60 (точность прогноза на бычьем рынке) сравнивается со случайным числом (от 0 до 1).
Если случайное число оказывается меньше, чем 0.60, что происходит с вероятностью 60%, то предполагается, что маркет-таймер правильно предсказал бычий рынок и его доходность для этого первого наблюдения является рыночной ставкой доходности.
Если случайное число оказывается больше, чем 0.60, то предполагается, что маркет-таймер допустил ошибку и предсказал медвежий рынок. Его доходность для этого наблюдения является безрисковой ставкой доходности.
Аналогичным образом, если это первое наблюдение соответствует медвежьему рынку, маркет-таймер имеет 80-процентный шанс быть правым в прогнозировании медвежьего рынка на основе генерации случайных чисел.
В любом случае, доходность инвестора сравнивается с рыночной доходностью, чтобы зафиксировать его выигрыш (разницу) по сравнению с долгосрочной стратегией buy-and-hold.
Описанный выше процесс является одним имитационным испытанием (итерацией).
Сымитированной средней доходностью, заработанной маркет-таймером, будет средняя заработанная доходность по итогу всех испытаний в моделировании.
Для того, чтобы лучше понять этот процесс, рассмотрим гипотетическое моделирование методом Монте-Карло с четырьмя испытаниями для маркет-таймера 60-80 таймера (напомним, что это означает 60% точность в прогнозировании бычьих рынков и 80% точность в прогнозировании медвежьих рынков).
В Таблице 8 приведены данные для моделирования.
Давайте взглянем на испытания 1 и 2.
В испытании 1, первое сгенерированное случайное число приводит к рыночной доходности 0.121. Поскольку рыночная доходность 0.121, превысила безрисковую доходность по векселю 0.050, мы имеем дело с бычьим рынком.
Затем мы генерируем случайное число 0.531, которое мы потом сравниваем с точностью маркет-таймера для бычьего рынка, 0.60. Поскольку 0.531 меньше, чем 0.60, то предполагается, что маркет-таймер правильно спрогнозировал бычий рынок и, соответственно, вложился в акции. Таким образом, в этом испытании маркет-таймер получает рыночную доходность 0.121.
В испытании 2 мы наблюдаем еще один бычий рынок, и, поскольку случайное число 0.725 больше, чем 0.60, то предполагается, что маркет-таймер сделал ошибку и предсказал медвежий рынок. Таким образом, таймер заработал безрисковую доходность 0.081, а не более высокую рыночную доходность.

















