exponenta event banner

интерполировать

Броуновская интерполяция стохастических дифференциальных уравнений

Описание

пример

[XT,T] = interpolate(MDL,Times,Paths) выполняет броуновскую интерполяцию в заданный пользователем массив временных рядов на основе метода кусочно-постоянной выборки Эйлера.

пример

[XT,T] = interpolate(___,Name,Value) добавляет необязательные аргументы пары имя-значение.

Примеры

Стохастическая интерполяция без уточнения

Многие приложения требуют знания вектора состояния в периоды промежуточной выборки, которые изначально недоступны. Одним из способов аппроксимации этих промежуточных состояний является выполнение детерминированной интерполяции. Однако методы детерминированной интерполяции не могут зафиксировать правильное распределение вероятности в эти промежуточные моменты времени. Броуновская (или стохастическая) интерполяция фиксирует правильное совместное распределение путём выборки из условного гауссова распределения. Этот метод выборки иногда называют броуновским мостом.

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

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

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

Метод стохастической интерполяции доступен для любой модели. Однако его лучше всего проиллюстрировать с помощью броуновского процесса движения с постоянным параметром. Рассмотрим коррелированное двумерное броуновское движение (BM) модель формы:

dX1t = 0,3dt + 0,2 dW1t 0,1 dW2tdX2t = 0,4 dt + 0,1 dW1t 0,2 dW2tE [dW1tdW2t] = αdt = 0,5 dt

  1. Создать bm объект для представления двухмерной модели:

    mu    = [0.3; 0.4];
    sigma = [0.2 -0.1; 0.1 -0.2];
    rho   = [1 0.5; 0.5 1];
    obj   = bm(mu,sigma,'Correlation',rho);
  2. Предполагая, что дрейф (Mu) и диффузия (Sigma) параметры пересчитываются в год, моделируют одно испытание Монте-Карло ежедневных наблюдений в течение одного календарного года (250 торговых дней):

    rng default                 % make output reproducible
    dt    = 1/250;  % 1 trading day = 1/250 years
    [X,T] = simulate(obj,250,'DeltaTime',dt);
  3. Полезно детально изучить небольшой интервал.

    1. Интерполяция в моделируемый временной ряд с броуновским мостом:

      t = ((T(1) + dt/2):(dt/2):(T(end) - dt/2));
      x = interpolate(obj,t,X,'Times',T);
    2. Постройте график смоделированных и интерполированных значений:

      plot(T,X(:,1),'.-r',T,X(:,2),'.-b')
      grid on;
      hold on;
      plot(t,x(:,1),'or',t,x(:,2),'ob')
      hold off;
      xlabel('Time (Years)')
      ylabel('State')
      title('Bi-Variate Brownian Motion: \rho = 0.5')
      axis([0.4999 0.6001 0.25 0.4])

      Figure contains an axes. The axes with title Bi-Variate Brownian Motion: \rho = 0.5 contains 4 objects of type line.

      На этом сюжете:

      • Сплошные красные и синие точки указывают на смоделированные состояния двухмерной модели.

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

      • Открытые окружности указывают на интерполированные состояния.

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

Моделирование условных гауссовых распределений

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

В этом примере рассматривается поведение броуновского моста за один раз.

  1. Разделение одного временного приращения длины dt на 10 субинтервалов:

    mu    = [0.3; 0.4];
    sigma = [0.2 -0.1; 0.1 -0.2];
    rho   = [1 0.5; 0.5 1];
    obj   = bm(mu,sigma,'Correlation',rho);
    
    rng default; % make output reproducible
    dt    = 1/250;  % 1 trading day = 1/250 years
    [X,T] = simulate(obj,250,'DeltaTime',dt);
    
    n        = 125;    % index of simulated state near middle
    times    = (T(n):(dt/10):T(n + 1));
    nTrials  = 25000;  % # of Trials at each time
  2. В каждом субинтервале возьмите 25000 независимых розыгрышей из гауссова распределения, обусловленного моделируемыми состояниями слева и справа:

    average  = zeros(length(times),1);
    variance = zeros(length(times),1);
    for i = 1:length(times)
        t = times(i);
        x = interpolate(obj,t(ones(nTrials,1)),...
            X,'Times',T);
        average(i)  = mean(x(:,1));
        variance(i) = var(x(:,1));
    end
  3. Постройте график среднего значения выборки и дисперсии каждой переменной состояния:

    Примечание

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

    subplot(2,1,1);
    hold on;
    grid on;
    plot([T(n) T(n + 1)],[X(n,1) X(n + 1,1)],'.-b')
    plot(times, average, 'or')
    hold off;
    title('Brownian Bridge without Refinement: Sample Mean') 
    ylabel('Mean')
    limits = axis;
    axis([T(n) T(n + 1) limits(3:4)]);
    
    subplot(2,1,2)
    hold on;
    grid on;
    plot(T(n),0,'.-b',T(n + 1),0,'.-b')
    plot(times, variance, '.-r')
    hold('off');
    title('Brownian Bridge without Refinement: Sample Variance')
    xlabel('Time (Years)')
    ylabel('Variance')
    limits = axis;
    axis([T(n) T(n + 1) limits(3:4)]);

    Figure contains 2 axes. Axes 1 with title Brownian Bridge without Refinement: Sample Mean contains 2 objects of type line. Axes 2 with title Brownian Bridge without Refinement: Sample Variance contains 3 objects of type line.

    Броуновская интерполяция в пределах выбранного интервала dt иллюстрирует следующее:

    • Условное среднее каждой переменной состояния лежит на прямолинейном сегменте между исходными моделируемыми состояниями в каждой конечной точке.

    • Условная дисперсия каждой переменной состояния является квадратичной функцией. Эта функция достигает максимального расстояния между конечными точками интервала и равна нулю в каждой конечной точке.

    • Максимальная дисперсия, хотя и зависит от фактической функции G (t, X) скорости диффузии модели, является дисперсией суммы NBrowns коррелированные гауссовы вариации, масштабированные коэффициентом dt/4.

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

Входные аргументы

свернуть все

Модель стохастического дифференциального уравнения, заданная как sde, bm, gbm, cev, cir, hwv, heston, sdeddo, sdeld, или sdemrd объект.

Все MDL параметры предполагаются кусочно постоянными, оцениваемыми по последнему времени наблюдения в Times которая предшествует указанному времени интерполяции в T. Это согласуется с эйлеровым подходом моделирования Монте-Карло.

Типы данных: object

Время интерполяции, указанное как NTimes вектор элемента. Длина этого вектора определяет количество строк в интерполированном выходном временном ряду XT.

Типы данных: double

Примеры путей коррелированных переменных состояния, указанных как NPeriodsоколо-NVarsоколо-NTrials массив временных рядов.

Для данного испытания каждая строка этого массива является транспонированием вектора состояния Xt в момент времени t. Paths - начальный массив временных рядов, в который входит interpolate выполняет броуновскую интерполяцию.

Типы данных: double

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: [XT,T] = interpolate(MDL,T,Paths,'Times',t)

Время наблюдения, связанное с вводом временных рядов Paths, указанная как пара, разделенная запятыми, состоящая из 'Times' и вектор-столбец.

Типы данных: double

Флаг, указывающий, interpolate использует запрашиваемое время интерполяции (см. T) для уточнения интерполяции по мере поступления новой информации, указанной как пара, разделенная запятыми, состоящая из 'Refine' и логический со значением True или False.

Типы данных: logical

Последовательность фоновых процессов или регулировка вектора состояния, указанная как разделенная запятыми пара, состоящая из 'Processes' и функция или массив ячеек функций вида

Xt = P (t, Xt)

interpolate выполняет функции обработки в каждое время интерполяции. Они должны принять текущее время интерполяции t и вектор Xt текущего состояния и вернуть вектор состояния, который может быть корректировкой входного состояния.

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

Типы данных: cell | function

Выходные аргументы

свернуть все

Интерполированные переменные состояния, возвращаемые как NTimesоколо-NVarsоколо-NTrials массив временных рядов.

Для данного испытания каждая строка этого массива является транспонированием интерполированного вектора Xt состояния в момент времени t. XT - интерполированный временной ряд, сформированный путем интерполяции на вход Paths массив временных рядов.

Время интерполяции, связанное с выходным временным рядом XT, возвращено как NTimesвектор столбца -by-1.

Если входной вектор времени интерполяции Times не содержит отсутствующих наблюдений (NaNs), выход T является тем же вектором времени, что и Times, но с NaNs удален. Это уменьшает длину T и количество строк XT.

Алгоритмы

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

Рассмотрим векторнозначный SDE вида:

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

где:

  • X является NVars-by-1 вектор состояния.

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

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

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

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

Примечание

В отличие от методов моделирования, interpolation не поддерживает пользовательские шумовые процессы.

  • interpolate функция предполагает, что все параметры модели являются кусочно-постоянными, и оценивает их по последнему времени наблюдения в Times которая предшествует указанному времени интерполяции в T. Это согласуется с эйлеровым подходом моделирования Монте-Карло.

  • Когда время интерполяции выходит за пределы интервала, заданного Times, моделирование Эйлера экстраполирует временной ряд с использованием ближайшего доступного наблюдения.

  • Определенный пользователем временной ряд Paths и соответствующее наблюдение Times должны полностью соблюдаться (отсутствующие наблюдения не обозначаются NaNs).

  • interpolate функция предполагает, что указанный пользователем массив временных рядов Paths связан с sde объект. Например, Times и Paths входная пара является результатом начального узлового моделирования. Однако интерполяция игнорирует начальные условия sde объект (StartTime и StartState), разрешая указанный пользователем Times и Paths для приоритета входных рядов.

Ссылки

[1] Аит-Сахалия, Y. «Тестирование непрерывных временных моделей спотовой процентной ставки». Обзор финансовых исследований, весна 1996 года, том 9, № 2, стр. 385-426.

[2] Ait-Sahalia, Y. «Переходные плотности для процентных ставок и других нелинейных диффузий». Журнал финансов, том 54, № 4, август 1999 года.

[3] Глассерман, P. Monte Carlo Methods in Financial Engineering. Нью-Йорк, Спрингер-Верлаг, 2004.

[4] Халл, Дж. К. Опционы, фьючерсы и другие деривативы, 5-е ред. Энглвуд Клиффс, Нью-Джерси: Прентис Холл, 2002.

[5] Джонсон, Н. Л., С. Коц и Н. Балакришнан. Непрерывные одномерные распределения. Том 2, 2-й ред. Нью-Йорк, John Wiley & Sons, 1995.

[6] Шрив, С. Э. Стохастическое исчисление для финансов II: модели непрерывного времени. Нью-Йорк: Спрингер-Верлаг, 2004.

Представлен в R2008a