exponenta event banner

Модели SDE

Введение

Большинство моделей и утилит, доступных в Monte Carlo Simulation of SDE, представлены в виде объектов MATLAB ®. Поэтому в этой документации часто используются термины модель и объект взаимозаменяемо .

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

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

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

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

Примеры и дополнительные сведения о создании объектов SDE см. в разделе:

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

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

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

Назначение параметров объекта и ссылка на них

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

    A = obj.A 

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

    obj.A = 3

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

    obj.A(i,j) = 0.3   

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

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

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

  • Связь динамического (временного) поведения с оценкой функции, где время и состояние (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 = t0, t0 + Δt, t0 + 2Δt,..., T - Δt.

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

Xt = f (t, Xt)

для t = t0 + Δt, t0 + 2Δt,..., T.

где t0 и 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

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

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

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

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

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

Кроме того, можно также использовать:

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

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

  • simByTransition с heston объект аппроксимирует непрерывную модель Хестона аппроксимацией функции плотности перехода.

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

.

См. также

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

Связанные примеры

Подробнее