Модели SDE

Введение

Большинство моделей и утилит, доступных с Симуляция Монте-Карло of SDE, представлены как MATLAB® объекты. Поэтому эта документация часто использует термины model и object взаимозаменяемо.

Однако, хотя все модели представлены как объекты, не все объекты представляют модели. В частности, drift, diffusion объекты используются в спецификации модели, но ни один из этих типов объектов в и сами по себе не составляет полную модель. Обычно вам не нужно создавать drift, diffusion объекты непосредственно, поэтому вам не нужно различать объекты и модели. Однако важно понимать различие между этими терминами.

Во многих из следующих примеров большинство параметров модели оцениваются или вызываются как любая функция MATLAB. Хотя полезно исследовать и получить доступ к параметрам модели, так же как и к структурам данных, думайте об этих параметрах как о функциях, которые выполняют действия.

Создание объектов SDE

Создание объектов

Для примеров и дополнительной информации о создании объектов SDE смотрите:

Отображение объектов

  • Объекты отображаются как традиционные структуры данных MATLAB.

  • Отображаемые параметры объекта появляются как существительные, которые начинаются с заглавных букв. Напротив, такие параметры, как simulate и interpolate появляются как глаголы, начинающиеся со строчных букв, которые указывают на задачи, которые необходимо выполнять.

Назначение и Объект привязки параметров

  • Объекты поддерживают ссылки, подобные структурам данных. Для примера допустимы такие операторы, как:

    A = obj.A 

  • Объекты поддерживают полное назначение параметров, аналогичное структурам данных. Для примера допустимы такие операторы, как:

    obj.A = 3

  • Объекты не поддерживают частичное назначение параметров, как это делают структуры данных. Поэтому такие операторы, как:

    obj.A(i,j) = 0.3   

Создание и оценка моделей

  • Можно создать объекты любого класса модели, только если доступно достаточно информации, чтобы однозначно определить размерность модели. Поскольку каждый объект предлагает уникальные входные интерфейсы, некоторые модели требуют дополнительной информации для разрешения размерности модели.

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

  • Ассоциация динамического (переменного во времени) поведения с вычислением функции, где time и state (t,Xt) передаются в общий, опубликованный интерфейс, широко распространена во всей системе классов SDE. Можно использовать этот подход вычисления функции для моделирования или создания мощной аналитики. Для простого примера смотрите Пример: Одномерные модели GBM.

Определение параметров симуляции SDE

Механизм SDE позволяет моделировать обобщенные многомерные стохастические процессы и обеспечивает гибкую и мощную архитектуру симуляции. Среда также предоставляет вам утилиты и классы моделей, которые предлагают различные параметрические спецификации и интерфейсы. Архитектура полностью многомерна как в векторе состояний, так и в броуновском движении и предлагает как линейные, так и средние спецификации скорости дрейфа.

Можно задать большинство параметров как массивы MATLAB или как функции, доступные с помощью общего интерфейса, который поддерживает общие динамические/нелинейные отношения, общие в симуляции SDE. В частности, можно симулировать коррелированные пути любого количества переменных состояния, управляемых векторным броуновским движением произвольной размерности. Эта симуляция аппроксимирует базовый многомерный процесс непрерывного времени с помощью векторного стохастического разностного уравнения.

Рассмотрим следующее общее стохастическое дифференциальное уравнение:

dXt=F(t,Xt)dt+G(t,Xt)dWt(1)

где:

  • X является NVars -by- 1 вектор состояния переменных процесса (для примера, коротких ставок или цен на акции) для моделирования.

  • W является NBrowns -by- 1 Брауновский вектор движения.

  • F является NVars -by- 1 векторная функция скорости дрейфа.

  • G является NVars -by NBrowns матричной функцией скорости диффузии.

Скорости дрейфа и диффузии, F и G, соответственно, являются общими функциями действительной скалярной временной t и векторной Xt состояния. Кроме того, статические (не переменные во времени) коэффициенты являются просто частным случаем более общей динамической (переменная во времени) ситуации, так же как функция может быть тривиальной константой; для примера f(t,Xt) = 4. SDE в уравнении 1 полезен при реализации производных классов, которые накладывают дополнительную структуру на функции дрейфа и скорости диффузии.

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

Параметры модели, которые заданы как функции, оцениваются так же, как и пользовательские функции генерации случайных чисел (шум). (Для получения дополнительной информации смотрите Оценка различных типов функций.) Параметры модели, которые заданы как функции, являются входами для удаления конструкторов объектов. Заданные пользователем функции шума и обработки являются необязательными входами для методов симуляции.

Поскольку конструкторы классов предлагают уникальные интерфейсы, а методы симуляции любой заданной модели имеют различные детали реализации, модели часто вызывают функции параметра для целей валидации другое количество раз, или в другом порядке, во время создания объекта, симуляции и интерполяции.

Поэтому, хотя функции параметра, пользовательские функции генерации шума и функции обработки в конце периода - все они разделяют интерфейс и проверяются в одно и то же начальное время и состояние (obj.StartTime и obj.StartState), функции параметра не гарантировано вызываться только один раз перед симуляцией, так как функции генерации шума и обработки в конце периода являются. На самом деле, функции параметра могут даже не вызываться одинаковое количество раз в течение данного процесса симуляции Монте-Карло.

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

Однако, если функции параметра требуют более сложной бухгалтерии, правильным способом определить, когда моделирование началось (или эквивалентно, чтобы определить, когда валидация модели завершена), является определение, когда время входы и/или состояние отличаются от начального времени и состояния (obj.StartTime и obj.StartState, соответственно). Поскольку входное время является известным скаляром, обнаружение изменения от начального времени, вероятно, является лучшим выбором в большинстве ситуаций. Это общий механизм, который можно применить к любому типу определяемой пользователем функции.

Оценка различных типов функций.  Полезно сравнить правила оценки заданных пользователем функций генерации шума с правилами обработки в конце периода. Эти функции имеют следующие общие функции:

  • Они оба имеют один и тот же общий интерфейс, возвращая вектор-столбец соответствующей длины при оценке в текущем времени и состоянии:

    Xt=f(t,Xt)

    zt=Z(t,Xt)

  • Перед симуляцией метод симуляции сам вызывает каждую функцию один раз, чтобы подтвердить размер выхода в начальном времени и состоянии, obj.StartTime, и obj.StartState, соответственно.

  • Во время симуляции метод симуляции вызывает каждую функцию одинаковое количество раз: NPeriods * NSteps.

Однако существует важное различие во времени между этими двумя типами функций. Наиболее четко он получен непосредственно из типового SDE модель:

dXt=F(t,Xt)dt+G(t,Xt)dWt

Это уравнение выражается в непрерывном времени, но методы симуляции аппроксимируют модель за дискретное время как:

Xt+Δt=Xt+F(t,Xt)Δt+G(t,Xt)ΔtZ(t,Xt)

где И t > 0 является маленьким (и не обязательно равным) периодом или временным шагом в будущее. Это уравнение часто упоминается как аппроксимация Эйлера, метод симуляции, который обеспечивает дискретное приближение стохастического процесса в непрерывном времени. Все функции на самой правой стороне оцениваются в текущем времени и состоянии (t, Xt ).

Другими словами, в течение следующего небольшого временного шага симуляция развивает вектор состояния только на основе информации, доступной в текущем времени и состоянии. В этом смысле можно думать о функции шума как о функции начала периода или как о функции, оцененной слева. Это также верно для любого пользовательского дрейфа или диффузионной функции.

Напротив, пользовательские функции обработки в конце периода применяются только в конце каждого периода симуляции или временного шага. Для получения дополнительной информации об обработке функций смотрите Расчет цены на Опции.

Поэтому все методы симуляции оценивают функции генерации шума как:

zt=Z(t,Xt)

для t = <reservedrangesplaceholder6> 0, <reservedrangesplaceholder5> 0 + Δ <reservedrangesplaceholder4>, <reservedrangesplaceholder3> 0 + 2Δ t..., T - Δ <reservedrangesplaceholder0>.

Тем не менее, методы симуляции оценивают функции обработки в конце периода как:

Xt=f(t,Xt)

для t = t 0 + В t, t 0 + 2В t,..., T.

где t 0 и T являются начальным временем (взятым из объекта) и терминальным временем (выведенным из входов в метод симуляции), соответственно. Эти вычисления происходят на всех путях расчета. Поэтому во время симуляции функции шума никогда не оцениваются в конечном (терминальном) времени, и функции обработки в конце периода никогда не оцениваются в начальном (стартовом) времени .

Дрейф и диффузия

Для примера SDE с линейной скоростью дрейфа имеет вид:

F(t,Xt)=A(t)+B(t)Xt(2)

где A является NVars -by- 1 векторно-значимая функция и B является NVars -by NVars матричной функцией.

В качестве альтернативы рассмотрим спецификацию скорости дрейфа, выраженную в средней возвращающей форме:

F(t,Xt)=S(t)[L(t)Xt](3)

где S - NVars -by NVars матричная функция средних скоростей реверсии (то есть скорости средней реверсии), а L - NVars -by 1 векторная функция средних уровней реверсии (то есть долгосрочного среднего уровня).

Аналогичным образом рассмотрим следующую спецификацию скорости диффузии:

G(t,Xt)=D(t,Xtα(t))V(t)(4)

где D - NVars -by NVars диагональная матричная функция. Каждый диагональный элемент D является соответствующим элементом вектора состояний, приподнятого к соответствующему элементу экспонентного Alpha, который также является NVars -by- 1 векторная функция. V является NVars -by NBrowns матричной функцией мгновенных частот волатильности. Каждая строка V соответствует определенной переменной состояния, и каждый столбец соответствует конкретному броуновскому источнику неопределенности. V связывает воздействие переменных состояния с источниками риска.

Параметрические спецификации для функций дрейфа и скорости диффузии связывают параметрические ограничения с знакомыми моделями, полученными из общего класса SDE, и обеспечивают покрытие для многих моделей.

Система классов и иерархия двигателя SDE используют отраслевую стандартную терминологию, чтобы обеспечить упрощенные интерфейсы для многих моделей путем размещения прозрачных для пользователя ограничений на спецификации дрейфа и диффузии. Этот проект позволяет вам смешивать и совпадать с существующими моделями и настраивать функции скорости дрейфа или скорости диффузии.

Доступные модели

Для примера следующие модели являются особыми случаями общей модели SDE.

Модели SDE

Имя моделиСпецификация
Броуновское движение (BM)

dXt=A(t)dt+V(t)dWt

Геометрическое броуновское движение (GBM)

dXt=B(t)Xtdt+V(t)XtdWt

Постоянная эластичность отклонения (CEV)

dXt=B(t)Xtdt+V(t)Xtα(t)dWt

Кокс-Ингерсолл-Росс (CIR)

dXt=S(t)(L(t)Xt)dt+V(t)Xt12dWt

Корпус-Белый/Васичек (HWV)

dXt=S(t)(L(t)Xt)dt+V(t)dWt

Хестон

dX1t=B(t)X1tdt+X2tX1tdW1t

dX2t=S(t)[L(t)X2t]dt+V(t)X2tdW2t

Мертон

dXt=B(t,Xt)Xtdt+D(t,Xt)V(t,xt)dWt+Y(t,Xt)XtdNt

Убавляет

Модели Бейтса являются двухмерными композитными моделями. Каждая модель Бейтса состоит из двух связанных одномерных моделей:

  • Геометрическое броуновское движение (gbm) модель с стохастической функцией волатильности.

    dX1t=B(t)X1tdt+X2tX1tdW1t

  • А Кокс-Ингерсолл-Росс (cir) квадратный корень диффузии.

    dX2t=S(t)[L(t)X2t]dt+V(t)X2tdW2t

Методы симуляции и интерполяции SDE

The sde класс предоставляет методы симуляции и интерполяции по умолчанию для всех производных классов:

  • simulate: Высокоуровневая обертка вокруг заданного пользователем метода симуляции, хранящаяся в Simulation свойство

  • simByEuler: Метод симуляции приближения Эйлера по умолчанию

  • interpolate: Стохастический метод интерполяции (то есть Брауновский мост)

A simBySolution функция, которая имитирует приблизительные решения процессов диагонального дрейфа, поддерживается для следующих классов:

В сложение можно также использовать:

  • simByTransition с cir объект для аппроксимации модели Кокса-Ингерсолла-Росса (CIR) в непрерывном времени функцией плотности сглаживания перехода.

  • simByTransition с bates объект для аппроксимации модели Бейтса в непрерывном времени функцией сглаживания перехода плотности.

  • simByTransition с heston объект для аппроксимации модели Гестона в непрерывном времени функцией сглаживания перехода плотности.

  • simByQuadExp с heston, bates, или cir объект для генерации путей расчета с помощью схемы квадратичной экспоненциальной дискретизации.

.

См. также

| | | | | | | | | | | | | | | | | | | |

Похожие примеры

Подробнее о