Броуновская интерполяция стохастических дифференциальных уравнений
[XT,T] = interpolate(MDL,Times,Paths)
[XT,T] = interpolate(___,Name,Value)
Много приложений требуют знания вектора состояния в промежуточных шагах расчета, которые первоначально недоступны. Один способ аппроксимировать эти промежуточные состояния состоит в том, чтобы выполнить детерминированную интерполяцию. Однако детерминированным методам интерполяции не удается получить правильное распределение вероятностей в эти промежуточные времена. Броуновский (или стохастический) интерполяция получает правильное совместное распределение путем выборки от условного Распределения Гаусса. Этот метод выборки иногда упоминается как Броуниэн-Бридж.
Стохастический метод интерполяции по умолчанию разработан, чтобы интерполировать в существующие временные ряды и проигнорировать новые интерполированные состояния, когда дополнительная информация становится доступной. Этот метод является обычным понятием интерполяции, которая называется Интерполяцией без улучшения.
Также метод интерполяции может вставить новые интерполированные состояния в существующие временные ряды, на которых базируется последующая интерполяция, этим означает совершенствовать информацию, доступную в последующие времена интерполяции. Этот метод называется интерполяцией с улучшением.
Интерполяция без улучшения является более традиционным методом и является самой полезной, когда входной ряд близко расположен вовремя. В этой ситуации интерполяция без улучшения является хорошим методом для выведения данных в присутствии недостающей информации, но является несоответствующей для экстраполяции. Интерполяция с улучшением более подходит, когда входной ряд широко расставлен вовремя и полезен для экстраполяции.
Стохастический метод интерполяции доступен любой модели. Это лучше всего проиллюстрировано, однако, посредством процесса Броуновского движения постоянного параметра. Рассмотрите коррелированую, двумерную модель (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
В каждом подынтервале возьмите 25 000 независимых ничьих из Распределения Гаусса, обусловленного на моделируемых состояниях налево и праве:
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
не поддерживает заданные пользователями шумовые процессы.
Функция interpolate
принимает, что все параметры модели являются кусочно-постоянными, и оценивает их с нового времени наблюдения в Times
, который предшествует заданному времени интерполяции в T
. Это сопоставимо с Эйлеровым подходом симуляции Монте-Карло.
Когда время интерполяции выходит за пределы интервала, заданного Times
, Эйлерова симуляция экстраполирует временные ряды при помощи самого близкого доступного наблюдения.
Пользовательские временные ряды Paths
и соответствующее наблюдение Times
должны полностью наблюдаться (никакие недостающие наблюдения, обозначенные NaN
s).
Функция interpolate
принимает, что массив серии пользовательского требуемого времени Paths
сопоставлен с объектом sde
. Например, пара входа Times
и Paths
результат начальной симуляции с зернами курса. Однако интерполяция игнорирует начальные условия объекта sde
(StartTime
и StartState
), позволяя заданному пользователями ряду входа Times
и Paths
быть более приоритетной.
[1] Островок-Sahalia, Y. “Тестируя Непрерывно-разовые Модели Точечной Процентной ставки”. Анализ Финансовых Исследований, Spring 1996, Издания 9, № 2, стр 385–426.
[2] Островок-Sahalia, Y. “Плотность перехода для процентной ставки и другой нелинейной диффузии”. Журнал финансов, издания 54, № 4, август 1999.
[3] Глассермен, P. Методы Монте-Карло в финансовой разработке. Нью-Йорк, Springer-Verlag, 2004.
[4] Оболочка, J. C. Опции, фьючерсы и Другие Производные, 5-й редактор Englewood Cliffs, NJ: Prentice Hall, 2002.
[5] Джонсон, N. L. С. Коц и Н. Бэлэкришнэн. Непрерывные Одномерные распределения. Издание 2, 2-й редактор Нью-Йорк, John Wiley & Sons, 1995.
[6] Shreve, S. E. Стохастическое исчисление для финансов II: непрерывно-разовые модели. Нью-Йорк: Springer-Verlag, 2004.