Броуновская интерполяция стохастических дифференциальных уравнений
Много приложений требуют знания вектора состояния в промежуточных шагах расчета, которые первоначально недоступны. Один способ аппроксимировать эти промежуточные состояния состоит в том, чтобы выполнить детерминированную интерполяцию. Однако детерминированным методам интерполяции не удается получить правильное вероятностное распределение в эти промежуточные времена. Броуновский (или стохастический) интерполяция получает правильное совместное распределение путем выборки от условного Распределения Гаусса. Этот метод выборки иногда упоминается как Броуниэн-Бридж.
Стохастический метод интерполяции по умолчанию спроектирован, чтобы интерполировать в существующие временные ряды и проигнорировать новые интерполированные состояния, когда дополнительная информация становится доступной. Этот метод является обычным понятием интерполяции, которая называется Интерполяцией без улучшения.
В качестве альтернативы метод интерполяции может вставить новые интерполированные состояния в существующие временные ряды, на которых базируется последующая интерполяция, этим означает совершенствовать информацию, доступную в последующие времена интерполяции. Этот метод называется интерполяцией с улучшением.
Интерполяция без улучшения является более традиционным методом и является самой полезной, когда входной ряд близко расположен вовремя. В этой ситуации интерполяция без улучшения является хорошим методом для выведения данных в присутствии недостающей информации, но является несоответствующей для экстраполяции. Интерполяция с улучшением более подходит, когда входной ряд широко расставлен вовремя и полезен для экстраполяции.
Стохастический метод интерполяции доступен для любой модели. Это лучше всего проиллюстрировано, однако, посредством процесса Броуновского движения постоянного параметра. Рассмотрите коррелированое, двумерное Броуновское движение (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.