Брауновская интерполяция стохастических дифференциальных уравнений
Многие приложения требуют знания вектора состояния при промежуточных шагах расчета, которые первоначально недоступны. Одним из способов аппроксимации этих промежуточных состояний является выполнение детерминированной интерполяции. Однако детерминированные методы интерполяции не могут захватить правильное распределение вероятностей в эти промежуточные моменты времени. Брауновская (или стохастическая) интерполяция захватывает правильное распределение соединений путем дискретизации из условного Гауссова распределения. Этот метод дискретизации иногда упоминается как Брауновский мост.
Метод стохастической интерполяции по умолчанию разработан, чтобы интерполировать в существующие временные ряды и игнорировать новые интерполированные состояния, когда дополнительная информация становится доступной. Этот метод является обычным понятием интерполяции, которое называется Интерполяцией без уточнения.
Альтернативно, метод интерполяции может вводить новые интерполированные состояния в существующие временные ряды, на которых основана последующая интерполяция, с помощью этого средства уточняет информацию, доступную в последующие моменты интерполяции. Этот метод называется интерполяцией с уточнением.
Интерполяция без уточнения является более традиционным методом и наиболее полезна, когда входные ряды тесно разнесены по времени. В этой ситуации интерполяция без уточнения является хорошим методом для вывода данных в присутствии недостающей информации, но не подходит для экстраполяции. Интерполяция с уточнением более подходит, когда входной ряд широко разнесен во времени и полезен для экстраполяции.
Стохастический метод интерполяции доступен любой модели. Это лучше всего проиллюстрировать, однако, посредством процесса броуновского движения с постоянными параметрами. Рассмотрим коррелированное, двухмерное броуновское движение (BM
) модель формы:
Создайте 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);
Принимая, что дрейф (Mu
) и диффузия (Sigma
) параметры в годовом исчислении, моделируют одно испытание ежедневных наблюдений Монте-Карло в течение одного календарного года (250 торговых дней):
rng default % make output reproducible dt = 1/250; % 1 trading day = 1/250 years [X,T] = simulate(obj,250,'DeltaTime',dt);
Полезно детально изучить небольшой интервал.
Интерполяция в моделируемые временные ряды с помощью брауновского моста:
t = ((T(1) + dt/2):(dt/2):(T(end) - dt/2));
x = interpolate(obj,t,X,'Times',T);
Постройте график как моделируемого, так и интерполированного значений:
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])
На этом графике:
Твердые красные и синие точки указывают на моделируемые состояния двухмерной модели.
Прямые линии, которые соединяют твердые точки, указывают промежуточные состояния, которые будут получены из детерминированной линейной интерполяции.
Открытые круги указывают интерполированные состояния.
Открытые круги, сопоставленные со всеми другими интерполированными состояниями, окружают твердые точки, сопоставленные с соответствующим моделируемым состоянием. Однако интерполированные состояния в середине каждого временного шага обычно отклоняются от прямой линии, соединяющей каждую твердую точку.
Можно получить дополнительное представление о поведении стохастической интерполяции, рассматривая брауновский мост как симуляцию Монте-Карло условного Гауссова распределения.
В этом примере рассматривается поведение брауновского моста с одним временным шагом.
Разделите один временной шаг длины 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
В каждом подынтервале берите 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
Постройте график выборки и отклонения каждой переменной состояния:
Примечание
На следующем графике строится график выборочной статистики только первой переменной состояния, но аналогичные результаты сохраняются для любой переменной состояния.
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)]);
Интерполяция Брауна в пределах выбранного интервала, dt, иллюстрирует следующее:
Условное среднее значение каждой переменной состояния лежит на прямолинейном сегменте между исходными моделируемыми состояниями в каждой конечной точке.
Условное отклонение каждой переменной состояния является квадратичной функцией. Эта функция достигает своего максимального середины между конечными точками интервала и равна нулю в каждой конечной точке.
Максимальное отклонение, хотя и зависит от фактической модели G(t,X) функции скорости диффузии, является отклонением суммы NBrowns
коррелированные Гауссовы вариации, масштабируемые множителем dt/4.
Предыдущий график подсвечивает интерполяцию без уточнения, поскольку ни одно из интерполированных состояний не учитывает новую информацию по мере ее появления. Если бы вы выполнили интерполяцию с уточнением, новые интерполированные состояния были бы вставлены во временные ряды и предоставлены для последующих интерполяций на основе испытаний. В этом случае все случайные рисунки для любого заданного времени интерполяции будут идентичными. Кроме того, график среднего значения выборки будет демонстрировать большую изменчивость, но все еще будет кластеризоваться вокруг прямолинейного сегмента между исходными моделируемыми состояниями в каждой конечной точке. График отклонения выборки, однако, был бы нулем для всех времен интерполяции, не проявляя изменчивости.
Эта функция выполняет интерполяцию Брауна в пользовательский массив временных рядов, основанный на кусочно-постоянном подходе Эйлера к выборке.
Рассмотрим векторное SDE вида:
где:
X является NVars -by- 1
вектор состояния.
F является NVars -by- 1
функция с векторным значением скорости дрейфа.
G является NVars -by NBrowns функцией с матричным значением скорости диффузии.
W является NBrowns -by- 1
Брауновский вектор движения.
Учитывая пользовательский массив временных рядов, сопоставленный с этим уравнением, эта функция выполняет брауновскую (стохастическую) интерполяцию путем дискретизации из условного Гауссова распределения. Этот метод дискретизации иногда называют броуновским мостом.
Примечание
В отличие от методов симуляции, interpolation
функция не поддерживает заданные пользователем шумовые процессы.
The interpolate
функция принимает, что все параметры модели являются кусочно-постоянными, и оценивает их из самого последнего времени наблюдения в Times
которое предшествует заданному времени интерполяции в T
. Это согласуется с подходом Эйлера симуляции Монте-Карло.
Когда время интерполяции выходит за пределы интервала, заданного Times
, симуляция Эйлера экстраполирует временной ряд с помощью ближайшего доступного наблюдения.
Пользовательские временные ряды Paths
и соответствующие Times
наблюдения необходимо полностью наблюдать (отсутствующие наблюдения, обозначаемые
NaN
с).
The interpolate
функция принимает, что заданный пользователем массив временных рядов Paths
связана с sde
объект. Для примера, Times
и Paths
входная пара является результатом начальной симуляции с затравкой курса. Однако интерполяция игнорирует начальные условия sde
объект (StartTime
и StartState
), разрешающий использование заданного пользователем Times
и Paths
введите последовательность, чтобы иметь приоритет.
[1] Ait-Sahalia, Y. «Проверка моделей спотового процента в непрерывном времени». Обзор финансовых исследований, весна 1996 года, том 9, № 2, стр. 385-426.
[2] Ait-Sahalia, Y. «Переходные плотности для процентной ставки и других нелинейных диффузий». Финансовый журнал, том 54, № 4, август 1999 года.
[3] Glasserman, P. Monte Carlo Methods in Financial Engineering. Нью-Йорк, Springer-Verlag, 2004.
[4] Hull, J. C. Options, Futures, and Other Derivatives, 5 ed. Englewood Cliffs, NJ: Prentice Hall, 2002.
[5] Джонсон, Н. Л., С. Коц и Н. Балакришнан. Непрерывные одномерные распределения. Vol. 2, 2nd ed. New York, John Wiley & Sons, 1995.
[6] Shreve, S. E. Stochastic Calculus for Finance II: Continuous-Time Models. Нью-Йорк: Springer-Verlag, 2004.