Большинство моделей и утилит, доступных с симуляцией Монте-Карло SDEs, представлены, когда MATLAB® возражает. Поэтому эта документация часто использует термины model и object взаимозаменяемо.
Однако несмотря на то, что все модели представлены как объекты, не, все объекты представляют модели. В частности, drift
, diffusion
объекты используются в спецификации модели, но ни один из этих типов объектов в и себя не составляет полную модель. Обычно, вы не должны создавать drift
, diffusion
объекты непосредственно, таким образом, вы не должны дифференцироваться между объектами и моделями. Важно, однако, изучить различие между этими условиями.
Во многих следующих примерах большинство параметров модели оценено или вызвано как любая функция MATLAB. Несмотря на то, что полезно исследовать и получить доступ к параметрам модели, когда вы были бы структуры данных, думать об этих параметрах как о функциях, которые выполняют действия.
Для примеров и большей информации о создании объектов SDE, см.:
Объекты отображаются как традиционные структуры данных MATLAB.
Параметры отображаемого объекта появляются как существительные, которые начинаются с прописных букв. В отличие от этого параметры, такие как simulate
и interpolate
появитесь как глаголы, которые начинаются со строчных букв, которые указывают на задачи выполнить.
Поддержка объектов, ссылающаяся похожий на структуры данных. Например, операторы как следующее допустимы:
A = obj.A
Объекты поддерживают полное присвоение параметра, похожее на структуры данных. Например, операторы как следующее допустимы:
obj.A = 3
Объекты не поддерживают частичное присвоение параметра, как структуры данных делают. Поэтому операторы как следующее недопустимы:
obj.A(i,j) = 0.3
Можно создать объекты любого класса модели, только если достаточно информации доступно, чтобы определить однозначно размерность модели. Поскольку каждый объект предлагает уникальные входные интерфейсы, некоторые модели запрашивают дополнительную информацию, чтобы разрешить размерность модели.
Вы должны только ввести требуемые входные параметры в формат заполнителя, где данный входной параметр сопоставлен с определенным положением в списке аргументов. Можно ввести дополнительные входные параметры в любой порядок как пары "имя-значение" параметра, где имя данного параметра появляется в одинарных кавычках и предшествует своему соответствующему значению.
Ассоциация динамического (переменного временем) поведения с вычислением функции, куда time и state (t,Xt) передаются общему, опубликованному интерфейсу, является распространяющейся в системе класса SDE. Можно использовать этот подход вычисления функции, чтобы смоделировать или создать мощную аналитику. Для простого примера смотрите Пример: Одномерные Модели GBM.
Механизм SDE позволяет симуляцию обобщенных многомерных стохастических процессов и обеспечивает гибкую и мощную архитектуру симуляции. Среда также предоставляет вам утилиты и классы модели, которые предлагают различные параметрические технические требования и интерфейсы. Архитектура полностью многомерна и в векторе состояния и в Броуновском движении, и предлагает и линейные и возвращающиеся среднее значение технические требования уровня дрейфа.
Можно задать большинство параметров как массивы MATLAB или как функции, доступные общим интерфейсом, который поддерживает общие динамические/нелинейные отношения, распространенные в симуляции SDE. А именно, можно симулировать коррелируемые пути любого количества переменных состояния, управляемых Броуновским движением с векторным знаком произвольной размерности. Эта симуляция аппроксимирует базовый многомерный процесс непрерывного времени с помощью стохастического разностного уравнения с векторным знаком.
Рассмотрите следующее общее стохастическое дифференциальное уравнение:
(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 полезен в реализации производных классов, которые налагают дополнительную структуру на функции уровня диффузии и дрейф.
Определение Пользовательских Функций как Параметры модели. Несколько примеров в этой документации подчеркивают оценку параметров объекта как функции, доступные общим интерфейсом. На самом деле можно оценить параметры объекта путем передачи им времени и состояния, независимо от того, является ли базовый заданный пользователями параметр функцией. Однако полезно сравнить поведение параметров объекта, которые заданы как функции к тому из заданного пользователями шума и функции обработки конца периода.
Параметры модели, которые заданы как функции, оценены таким же образом как заданное пользователями случайное число (шум) функции генерации. (Для получения дополнительной информации смотрите Различные типы Оценки Функций.) Параметры модели, которые заданы как функции, являются входными параметрами, чтобы удалить конструкторов Object. Заданный пользователями шум и обрабатывающие функции являются дополнительными входными параметрами к методам симуляции.
Поскольку конструкторы класса предлагают уникальные интерфейсы, и методы симуляции любой данной модели имеют различные детали реализации, модели часто вызывают функции параметра в целях валидации различное число раз, или в различном порядке, во время создания объекта, симуляции и интерполяции.
Поэтому несмотря на то, что параметр функционирует, заданные пользователями шумовые функции генерации и функции обработки конца периода вся доля интерфейс и подтвержден в то же начальное время и состояние (obj.StartTime
и obj.StartState
), функции параметра, как гарантируют, не будут вызваны только однажды симуляция как, шумовая генерация и функции обработки конца периода. На самом деле функции параметра даже не могут быть вызваны то же число раз во время данного процесса симуляции Монте-Карло.
В большинстве приложений, в которых вы задаете параметры как функции, они - простые, детерминированные функции времени и/или состояния. Нет никакой потребности считать периоды, испытания количества, или в противном случае накопить информацию или синхронизировать время.
Однако, если функции параметра требуют более сложной бухгалтерии, правильный способ определить, когда симуляция началась (или эквивалентно, чтобы определить, когда проверка допустимости модели завершена), должен определить, когда входное время и/или состояние отличаются с начального времени и состояния (obj.StartTime
и obj.StartState
, соответственно). Поскольку входное время является известным скаляром, обнаруживание изменения с начального времени вероятно лучший выбор в большинстве ситуаций. Это - общий механизм, что можно обратиться к любому типу пользовательской функции.
Оценка Различных типов Функций. Полезно сравнить правила оценки заданных пользователями шумовых функций генерации к тем из функций обработки конца периода. У этих функций есть следующее общее:
Они оба совместно используют тот же общий интерфейс, возвращая вектор-столбец соответствующей длины, когда оценено в текущее время и состояние:
Перед симуляцией сам метод симуляции вызывает каждую функцию однажды, чтобы подтвердить размер выхода в начальное время и состояние, obj.StartTime
, и obj.StartState
, соответственно.
В процессе моделирования, вызовы метода симуляции каждая функция то же число раз: NPeriods
* NSteps
.
Однако существует важное различие относительно синхронизации между этими двумя типами функций. Это наиболее ясно чертится непосредственно от типового SDE
модель:
Это уравнение описывается в непрерывное время, но методы симуляции аппроксимируют модель в дискретное время как:
где Δt> 0 является маленьким (и не обязательно равный) период или шаг времени в будущее. Это уравнение часто упоминается как Эйлерово приближение, метод симуляции, который обеспечивает приближение дискретного времени стохастического процесса непрерывного времени. Все функции на самой правой стороне выполнены в текущее время и состояние (t, Xt).
Другими словами, по следующему маленькому шагу времени, симуляция развивает вектор состояния, базирующийся только на информации, доступной в текущее время и состояние. В этом смысле можно думать о шумовой функции как о функции начала периода, или как функция, выполненная слева. Это также верно для любого предоставленного пользователями дрейфа или функции диффузии.
В отличие от этого заданные пользователями функции обработки конца периода применяются только в конце каждого периода симуляции или шага времени. Для получения дополнительной информации об обработке функций, см. Опции Акции Оценки.
Поэтому все методы симуляции выполняют шумовые функции генерации как:
для t = t 0, t 0 + Δt, t 0 + 2Δt..., T – Δt.
Все же методы симуляции выполняют функции обработки конца периода как:
для t = t 0 + Δt, t 0 + 2Δt..., T.
где t 0 и T являются начальным временем (взятый из объекта) и терминальным временем (выведенный от входных параметров до метода симуляции), соответственно. Эти оценки происходят на всех демонстрационных путях. Поэтому в процессе моделирования шумовые функции никогда не выполняются в итоговое (терминальное) время, и функции обработки конца периода никогда не выполняются в начальное (стартовое) время.
Например, SDE с линейным уровнем дрейфа имеет форму:
(2) |
где A является NVars-by-1
функцией с векторным знаком и B является NVars-by-NVars функция с матричным знаком.
Как альтернатива, считайте спецификацию уровня дрейфа описанной в возвращающейся среднее значение форме:
(3) |
где S является NVars-by-NVars функция с матричным знаком скоростей возвращения к среднему уровню (то есть, уровни возвращения к среднему уровню), и L является NVars-by-1
функция с векторным знаком уровней возвращения к среднему уровню (то есть, среднего уровня длительного периода).
Точно так же рассмотрите следующую спецификацию уровня диффузии:
(4) |
где D является NVars-by-NVars диагональная функция с матричным знаком. Каждым диагональным элементом D является соответствующий элемент вектора состояния, повышенного до соответствующего элемента экспоненты Alpha, который является также NVars-by-1
функция с векторным знаком. V является NVars-by-NBrowns функция с матричным знаком мгновенных уровней энергозависимости. Каждая строка V соответствует конкретной переменной состояния, и каждый столбец соответствует конкретному Броуновскому источнику неопределенности. V сопоставляет воздействие переменных состояния с источниками риска.
Параметрические технические требования для дрейфа и функций уровня диффузии сопоставляют параметрические ограничения со знакомыми моделями, выведенными из общего класса SDE, и предоставляют страховую защиту многим моделям.
Система класса и иерархия механизма SDE используют терминологию промышленного стандарта, чтобы обеспечить упрощенные интерфейсы для многих моделей путем устанавливания прозрачных для пользователя ограничений для технических требований диффузии и дрейфа. Этот проект позволяет вам смешиванию и подгонке существующие модели, и настройте функции уровня дрейфа или уровня диффузии.
Например, следующие модели являются особыми случаями общей модели SDE.
Модели SDE
Имя модели | Спецификация |
---|---|
Броуновское движение (BM) |
|
Геометрическое броуновское движение (GBM) |
|
Постоянная эластичность отклонения (CEV) |
|
Кокс-Инджерсолл-Росс (CIR) |
|
Hull-White/Vasicek (HWV) |
|
Хестон |
|
Мертон |
|
Убавляет | Убавляет модели, двумерные составные модели. Каждая модель Bates состоит из двух двойных одномерных моделей:
|
sde
класс обеспечивает симуляцию по умолчанию и методы интерполяции для всех производных классов:
simulate
: Высокоуровневая обертка вокруг заданного пользователями метода симуляции сохранена в Simulation
свойство
simByEuler
: Эйлеров метод симуляции приближения по умолчанию
interpolate
: Стохастический метод интерполяции (то есть, Броуниэн-Бридж)
simBySolution
функция, которая симулирует приближенные решения процессов диагонального дрейфа, поддерживается для следующих классов:
gbm
поддержки simBySolution
hwv
поддержки simBySolution
merton
поддержки simBySolution
Кроме того, можно также использовать:
simByTransition
с cir
объект к аппроксимирует непрерывное время модель (CIR) Кокса-Инджерсолла-Росса функцией плотности сглаживания перехода.
simByTransition
с bates
объект к аппроксимирует модель Bates непрерывного времени функцией плотности сглаживания перехода.
simByTransition
с heston
объект к аппроксимирует непрерывное время модель Хестона функцией плотности сглаживания перехода.
simByQuadExp
с heston
, bates
, или cir
объект сгенерировать демонстрационные пути при помощи Квадратично-экспоненциальной схемы дискретизации.
.
bates
| bm
| cev
| cir
| diffusion
| drift
| gbm
| heston
| hwv
| interpolate
| merton
| sde
| sdeddo
| sdeld
| sdemrd
| simByEuler
| simByQuadExp
| simBySolution
| simBySolution
| simulate
| ts2func