exponenta event banner

Использование фильтра Калмана для оценки и прогнозирования модели Diebold-Li

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

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

Следующий пример иллюстрирует использование Государственной космической модели (SSM) и фильтра Калмана путем подгонки популярной модели Diebold-Li только для доходностей [2] к месячному временному ряду кривых доходности, полученных из данных государственных облигаций. В этом примере освещаются возможности оценки, моделирования, сглаживания и прогнозирования функциональных возможностей SSM, доступных в Toolbox™ Econometrics, и сравниваются его оценочные характеристики с характеристиками более традиционных эконометрических методов.

В примере сначала представлена модель Диболда-Ли, затем представлено параметрическое представление состояния-пространства, поддерживаемое функциональностью SSM панели инструментов Econometrics, а затем показано, как модель Дибольда-Ли может быть сформулирована в представлении состояния-пространства. Будучи сформулированным в представлении состояния-пространства, пример воспроизводит результаты оценки in-sample, опубликованные в [2], и сравнивает полученные результаты с результатами двухэтапного подхода, как описано в [1].

Пример завершается простой иллюстрацией прогнозирования минимальной среднеквадратической ошибки (MMSE) и возможностей моделирования функции SSM по методу Монте-Карло.

Модель Diebold-Li Модель кривой выхода

Модель Дибольда-Ли - вариант модели Нельсона-Сигеля [3], полученный репараметризацией исходной рецептуры. Для даты наблюдения t и времени до зрелости, модель Дибольда-Ли характеризует выход yt (start) как функцию от четырех параметров:

yt (τ) =Lt+St (1-e-λτλτ) +Ct (1 e \U 03BB\\U 03C4\\U 03BB\\U 03C4\e \U 03BB\\U 03C4\)

где Lt - долгосрочный фактор, или уровень, St - краткосрочный фактор, или наклон, а Ct - среднесрочный фактор, или кривизна. λ определяет зрелость, при которой нагрузка на кривизну максимизируется, и регулирует экспоненциальную скорость распада модели.

Государственно-космическая модель (SSM) инструментария Econometrics

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

Для вектора состояния xt и вектора наблюдения yt параметрическая форма панели инструментов Econometrics SSM выражается в следующем линейном представлении состояния-пространства:

xt = Atxt-1 + Btut

yt=Ctxt+Dtϵt

где ut и ϵt являются некоррелированными, обработка вектора белого шума с единичной дисперсией. В вышеприведенном представлении SSM первое уравнение называется уравнением состояния, а второе - уравнением наблюдения. Параметры модели At, Bt, Ct и Dt называются переходами состояний, нагрузками возмущений состояний, чувствительностью измерений и матрицами инноваций наблюдений соответственно.

Хотя функции SSM в Econometrics Toolbox соответствуют изменяющимся во времени (динамическим) параметрам At, Bt, Ct и Dt, значения и размеры которых изменяются со временем, в модели Diebold-Li эти параметры являются инвариантными во времени (статическими).

Состояние-космическая формулировка модели Diebold-Li

Приведенная выше модель Дибольда-Ли формулируется таким образом, что факторы уровня, наклона и кривизны следуют за векторным авторегрессионным процессом первого порядка, или VAR (1), и как таковая модель сразу формирует систему «состояние-пространство». Используя нотацию Дибольда, Рудебуша и Аруобы [2], уравнение перехода состояния, которое регулирует динамику вектора состояния (коэффициенты уровня, наклона и кривизны), записывается как

(Lt-maxLSt-мкSCt-мкC) = (a11a12a13a21a22a23a31a32a33) (Lt-1-μLSt-1-μSCt-1-μC) + (

Соответствующее уравнение наблюдения (измерения) записывается как

(yt ) yt ) ⋮yt ) = 11-e-λτ1λτ11-e-λτ1λτ1-e-λτ111-e-λτ2λτ21-e-λτ2λτ2-e-λτ2⋮11-e-λτNλτN1-e-λτNλτN-e-λτN») LtStCt») + (et ) et («2») ⋮et («N»))

В векторно-матричной нотации модель Дибольда-Ли переписана как следующая система состояния-пространства для 3-D вектора среднекорректированных факторов ft и наблюдаемых выходов yt:

(ft-λ) = A (ft-1-λ) +

yt = Λ ft + et

где ортогональные, гауссовы белые шумовые процессы/t и et определяются так, что

(λ tet) ∼WN ((00), (Q00H))

Кроме того, модель Дибольда-Ли формулируется таким образом, что нарушенные множители для уравнений состояния («status t») коррелируются, и поэтому соответствующая ковариационная матрица Q является недиагональной. Однако, напротив, модель накладывает диагональность на ковариационную матрицу Н возмущений уравнения наблюдения, так что отклонения наблюдаемых выходов при различных сроках погашения не коррелируются.

Определить скрытые состояния как коэффициенты, скорректированные в среднем

xt = ft-λ

и откорректированные или сдувшиеся выходы

yt′=yt-Λμ

и заменить приведенными выше уравнениями, а пространственную систему Diebold-Li можно переписать как

xt = Axt-1 +

yt′=yt-Λμ=Λxt+et

Теперь сравните государственную космическую систему Diebold-Li с формулировкой, поддерживаемой функциональностью SSM инструментария Econometrics Toolbox,

xt = Axt-1 + Но

yt=Cxt+Dϵt

Из вышеприведенных систем состояния-пространства мы сразу видим, что матрица А перехода состояния одинакова в обеих композициях и что матрица Λ Diebold-Li является просто матрицей C чувствительности измерения состояния в формулировке SSM.

Однако взаимосвязь между возмущениями и, следовательно, параметризацией матриц B и D в составе SSM является более тонкой. Чтобы увидеть эти отношения, обратите внимание, что

t = Но

et=Dϵt

Так как возмущения в каждой модели должны быть одинаковыми, ковариация, равная в формуле Дибольда-Ли, должна равняться ковариации масштабированного процесса SSM белого шума. Аналогично, ковариация et должна быть равна ковариации процесса Dϵt. Кроме того, поскольку ut и ϵt возмущения в составе SSM определяются как некоррелированные, векторные процессы белого шума с единичной дисперсией, их ковариационные матрицы являются единичными матрицами.

Поэтому при применении свойства линейного преобразования гауссовых случайных векторов ковариации состава Дибольда-Ли связаны с параметрами состава SSM, такими, что

Q = BB ′

H = DD ′

Чтобы сформулировать модель Diebold-Li способом, пригодным для оценки с помощью Econometrics Toolbox, пользователи должны сначала создать модель SSM с помощью ssm функция. Кроме того, модель SSM может быть создана с неизвестными параметрами, определенными явно или неявно.

Для явного создания модели SSM необходимо предоставить все необходимые матрицы A, B, C и D. В явном подходе неизвестные параметры отображаются как NaN значения для указания наличия и размещения неизвестных значений; каждый NaN запись соответствует уникальному параметру для оценки.

Хотя создание модели явным образом путем прямого указания параметров A, B, C и D иногда более удобно, чем неявное указание модели, полезность явного подхода ограничена тем, что каждый оцененный параметр влияет и однозначно связан с одним элементом матрицы коэффициентов.

Чтобы создать модель неявно, пользователи должны указать функцию отображения параметров, которая сопоставляет вектор входных параметров с параметрами модели A, B, C и D. В неявном подходе функция отображения сама определяет модель и особенно удобна для оценки сложных моделей и для наложения различных ограничений параметров.

Кроме того, структура SSM не хранит ненулевые смещения переменных состояния или каких-либо параметров, связанных с компонентами регрессии в уравнении наблюдения. Вместо этого компонент регрессии оценивается путем дефляции наблюдений yt. Аналогично, другие связанные функции SSM, такие как filter, smooth, forecast, и simulate, предположим, что наблюдения уже сдуваются вручную или предварительно обрабатываются для учета каких-либо смещений или регрессионных компонентов в уравнении наблюдения.

Поскольку модель Дибольда-Ли включает ненулевое смещение (среднее значение) для каждого из трех факторов, которое представляет собой простой, но общий компонент регрессии, в этом примере используется функция отображения. Кроме того, функция отображения также накладывает ограничение симметрии на ковариационную матрицу Q = BB ′ и ограничение диагональности ковариационной матрицы H = DD ′, которые особенно хорошо подходят для неявного подхода. Кроме того, функция отображения также позволяет оценить параметр скорости λ затухания.

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

В подходе, взятом в этом примере, включение смещений коэффициентов в уравнение состояния представления SSM вводит регрессионную составляющую в уравнение наблюдения. Чтобы разрешить эту корректировку, в этом примере используется функция отображения параметров для дефляции наблюдаемых выходов во время оценки модели. Преимущество такого подхода заключается в том, что размерность вектора состояния ненаблюдаемых факторов остается равной 3, а потому напрямую соответствует 3-D модели фактора только выхода Diebold, Rudebusch и Aruoba [2]. Недостаток заключается в том, что, поскольку оценка выполняется для сдуваемых выходов, другие функции SSM также должны учитывать эту корректировку путем сдувания и последующего раздувания выходов.

Данные кривой доходности

Данные о доходности состоят из временных рядов из 29 лет ежемесячных нулевых купонных доходностей Fama-Bliss Минфина США, используемых и обсуждаемых в [1] и [2], на срок 3, 6, 9, 12, 15, 18, 21, 24, 30, 36, 48, 60, 72, 84, 96, 108 и 120 месяцев. Доходность выражается в процентах и регистрируется в конце каждого месяца, начиная с января 1972 года и заканчивая декабрем 2000 года, в общей сложности 348 ежемесячных кривых с 17 сроками погашения каждая. Весь набор данных кривой доходности Fama-Bliss, подмножество которых используется в [1] и [2], можно найти по адресу https://www.sas.upenn.edu/~fdiebold/papers/paper49/FBFITTED.txt.

Следующий анализ использует весь набор данных Diebold-Li для воспроизведения результатов оценки, опубликованных в [2], и сравнивает двухэтапный и SSM подходы.

В качестве альтернативы, набор данных можно также разделить на период в выборке, используемый для оценки каждой модели, и период вне выборки, зарезервированный для оценки производительности прогноза. В принципе, такой анализ точности прогноза может быть проведен способом, аналогичным тому, который опубликован в таблицах 4-6 Diebold и Li [1]. Однако это займет слишком много времени для завершения и поэтому непригодно для реального примера MATLAB.

load Data_DieboldLi
maturities = maturities(:);  % ensure a column vector
yields = Data(1:end,:);      % in-sample yields for estimation

Двухэтапная оценка модели Diebold-Li

В своей оригинальной статье [1] Diebold и Li оценивают параметры своей модели кривой доходности с использованием двухэтапного подхода:

  • При фиксированном λ оцените параметры уровня, наклона и кривизны для каждой месячной кривой доходности. Этот процесс повторяется для всех наблюдаемых кривых выхода и обеспечивает 3-D временные ряды оценок ненаблюдаемого уровня, наклона и коэффициентов кривизны.

  • Подгонка авторегрессивной модели первого порядка к временному ряду факторов, полученных на первом шаге.

Фиксируя λ на первом этапе, то, что в противном случае было бы нелинейной оценкой наименьших квадратов, заменяется относительно простой оценкой обычных наименьших квадратов (ОЛС). В рамках Нельсона - Сигеля принято устанавливать λ = 0,0609, что подразумевает, что величина, при которой нагрузка на кривизну (среднесрочный коэффициент) максимизируется, происходит через 30 месяцев.

Кроме того, поскольку кривая доходности параметризуется как функция факторов, прогнозирование кривой доходности эквивалентно прогнозированию базовых факторов и оценке модели Дибольда-Ли как функции прогнозов коэффициентов.

Первый шаг приравнивает 3 фактора (уровень, наклон и кривизна) к коэффициентам регрессии, полученным с помощью ОЛС, и накапливает 3-D временной ряд оцененных факторов путем повторения подгонки ОЛС для каждой наблюдаемой кривой доходности. Этап OLS выполняется ниже, и коэффициенты регрессии и остатки аппроксимации линейной модели сохраняются для последующего использования.

lambda0 = 0.0609;
X = [ones(size(maturities)) (1-exp(-lambda0*maturities))./(lambda0*maturities) ...
    ((1-exp(-lambda0*maturities))./(lambda0*maturities)-exp(-lambda0*maturities))];

beta = zeros(size(yields,1),3);
residuals = zeros(size(yields,1),numel(maturities));

for i = 1:size(yields,1)
    EstMdlOLS = fitlm(X, yields(i,:)', 'Intercept', false);
    beta(i,:) = EstMdlOLS.Coefficients.Estimate';
    residuals(i,:) = EstMdlOLS.Residuals.Raw';
end

Теперь, когда вычислен 3-D временной ряд факторов, второй шаг подгоняет временной ряд к авторегрессионной (AR) модели первого порядка. На данном этапе существует два варианта для АПП:

  • Поместите каждый коэффициент в одномерную модель AR (1) отдельно, как в [1].

  • Подгонка всех 3 факторов к модели VAR (1) одновременно, как в [2]

Хотя Econometrics Toolbox поддерживает как одномерную, так и многомерную оценку AR, в следующем примере модель VAR (1) соответствует 3-D временному ряду факторов. Для обеспечения согласованности с композицией SSM, которая работает с факторами, скорректированными по среднему значению, модель VAR (1) включает добавочную константу для учета среднего значения каждого фактора.

EstMdlVAR = estimate(varm(3,1), beta);

Оценка SSM модели Diebold-Li

Как обсуждалось выше, модель Диболда-Ли оценивается с использованием неявного подхода, в котором задана функция отображения параметров. Эта функция отображения отображает вектор параметров на параметры модели SSM, дефлирует результаты наблюдений для учета средств каждого фактора и накладывает ограничения на ковариационные матрицы.

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

Mdl = ssm(@(params)Example_DieboldLi(params,yields,maturities));

Оценка максимального правдоподобия (MLE) моделей SSM через фильтр Калмана, как известно, чувствительна к начальным значениям параметров. В этом примере мы используем результаты двухэтапного подхода для инициализации оценки.

В частности, начальные значения передаются в SSM. estimate кодируют функции в вектор-столбец. В этом примере матрица А модели SSM устанавливается на оценочную матрицу коэффициентов AR 3 на 3 модели VAR (1), уложенную столбчатым образом в первые 9 элементов вектора столбца .

Из вышеприведенного описания матрица B модели SSM представляет собой матрицу 3 на 3, ограниченную таким образом, что Q = BB ′, и в чем следует оценка B - это более низкий коэффициент Холеского Q. Следовательно, чтобы гарантировать, что Q является симметричным, положительным определенным и допускает ненулевые внедиагональные ковариации, 6 элементов, связанных с нижним коэффициентом Холески Q, должны быть выделены в вектор столбца начального параметра. Тем не менее, в следующем мы инициализируем элементы начального вектора параметров с квадратным корнем оценочных отклонений инноваций модели VAR (1).

Другими словами, когда вектор параметров инициализирован, мы предполагаем, что ковариационная матрица Q является диагональной, но все же резервируют пространство для нижнеганальных элементов нижнего фактора Холески ковариационной матрицы так, что Q = BB ′. И в этом случае исходный вектор параметров расположен таким образом, что элементы В вдоль и под главной диагональю укладываются столбчатым образом.

Поскольку ковариационная матрица H в составе Diebold-Li является диагональной, матрица D модели SSM также ограничена диагональной, так что H = DD ′. Следовательно, элементы вектора начальных параметров, связанные с D, устанавливаются в квадратный корень диагональных элементов матрицы ковариации выборки остатков модели VAR (1), один такой элемент для каждой зрелости входных данных выхода (в этом примере имеется 17 сроков погашения), снова уложенных в виде столбцов.

Заметим, что матрица C модели SSM не оценивается непосредственно, а скорее является полностью параметризованной функцией оцененного параметра λ скорости затухания и вычисляется внутренне функцией отображения. Кроме того, параметр λ инициализируется традиционным значением 0,0609 и сохраняется в последнем элементе вектора столбца начального параметра.

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

A0 = EstMdlVAR.AR{1};      % Get the VAR(1) matrix (stored as a cell array)
A0 = A0(:);                % Stack it columnwise
Q0 = EstMdlVAR.Covariance; % Get the VAR(1) estimated innovations covariance matrix
B0 = [sqrt(Q0(1,1)); 0; 0; sqrt(Q0(2,2)); 0; sqrt(Q0(3,3))];
H0 = cov(residuals);       % Sample covariance matrix of VAR(1) residuals
D0 = sqrt(diag(H0));       % Diagonalize the D matrix
mu0 = mean(beta)';
param0 = [A0; B0; D0; mu0; lambda0];

После вычисления начальных значений задайте некоторые параметры оптимизации и оцените модель с помощью фильтра Калмана, вызвав функцию SSM. estimate. В этом примере ковариационная матрица H = DD ′ является диагональной, и поэтому мы предпочитаем вызывать одномерную обработку многомерного ряда для улучшения производительности выполнения оценки.

options = optimoptions('fminunc','MaxFunEvals',25000,'algorithm','quasi-newton', ...
    'TolFun' ,1e-8,'TolX',1e-8,'MaxIter',1000,'Display','off');

[EstMdlSSM,params] = estimate(Mdl,yields,param0,'Display','off', ...
    'options',options,'Univariate',true);

lambda = params(end);        % Get the estimated decay rate    
mu = params(end-3:end-1)';   % Get the estimated factor means

Сравнение результатов оценки параметров

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

Сначала сравнивают матрицу A предполагаемого перехода состояния модели SSM с матрицей коэффициентов AR (1), полученной из модели VAR.

dispvars = {"SSM State Transition Matrix (A):";...
    "--------------------------------";...
    EstMdlSSM.A};
cellfun(@disp,dispvars)
SSM State Transition Matrix (A):
--------------------------------
    0.9944    0.0286   -0.0221
   -0.0290    0.9391    0.0396
    0.0253    0.0229    0.8415
dispvars = {"Two-Step State Transition Matrix (A):";...
    "--------------------------------";...
    EstMdlVAR.AR{1}};
cellfun(@disp,dispvars)
Two-Step State Transition Matrix (A):
--------------------------------
    0.9901    0.0250   -0.0023
   -0.0281    0.9426    0.0287
    0.0518    0.0125    0.7881

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

Теперь изучите матрицу B загрузки возмущений состояния и сравните соответствующую ковариационную матрицу Q = BB новшеств, ′ полученную от SSM, с ковариацией новаций модели VAR (1).

dispvars = {"SSM State Disturbance Loading Matrix (B):";...
    "-----------------------------------------";...
    EstMdlSSM.B};
cellfun(@disp,dispvars)
SSM State Disturbance Loading Matrix (B):
-----------------------------------------
    0.3076         0         0
   -0.0453    0.6170         0
    0.1421    0.0255    0.8824
dispvars = {"SSM State Disturbance Covariance Matrix (Q = BB''):";...
    "--------------------------------------------------";...
    EstMdlSSM.B * EstMdlSSM.B'};
cellfun(@disp,dispvars)
SSM State Disturbance Covariance Matrix (Q = BB''):
--------------------------------------------------
    0.0946   -0.0139    0.0437
   -0.0139    0.3827    0.0093
    0.0437    0.0093    0.7995
dispvars = {"Two-Step State Disturbance Covariance Matrix (Q):";...
    "-------------------------------------------------";...
    EstMdlVAR.Covariance};
cellfun(@disp,dispvars)
Two-Step State Disturbance Covariance Matrix (Q):
-------------------------------------------------
    0.1149   -0.0266   -0.0719
   -0.0266    0.3943    0.0140
   -0.0719    0.0140    1.2152

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

Наконец, сравните средства коэффициента, полученные из SSM, с средствами двухэтапного подхода.

dispvars = {"SSM Factor Means:";...
    "-----------------";...
    mu};
cellfun(@disp,dispvars)
SSM Factor Means:
-----------------
    8.0246   -1.4423   -0.4188
dispvars = {"Two-Step Factor Means:";...
    "----------------------";...
    mu0'};
cellfun(@disp,dispvars)
Two-Step Factor Means:
----------------------
    8.3454   -1.5724    0.2030

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

Сравнение предполагаемых факторов

Ненаблюдаемые факторы, или скрытые состояния, которые соответствуют коэффициентам уровня, наклона и кривизны модели Дибольда-Ли, представляют основной интерес для прогнозирования эволюции будущих кривых доходности. Теперь мы изучаем состояния, выведенные из каждого подхода.

В двухэтапном подходе скрытые состояния (факторы) являются коэффициентами регрессии, оцененными на этапе ОЛС.

В подходе SSM smooth функция реализует сглаживание Калмана так, что для t = 1,2,...,T сглаженные состояния определяются как

E [xt 'yT,..., y1]

Тем не менее, прежде чем мы вызовем smooth функция, напомним из вышеприведенного обсуждения, что структура SSM должна учитывать поправки на смещение, внесенные в наблюдаемые выходы во время оценки. В частности, во время оценки функция отображения параметров сдувает исходные наблюдения и поэтому работает с скорректированными по смещению выходами yt′=yt-Λμ а не с исходными выходами.

Кроме того, поскольку корректировка известна только для функции отображения, оценочная модель SSM не имеет явной информации о каких-либо корректировках, внесенных в исходные выходы. Следовательно, другие связанные функции SSM, такие как filter, smooth, forecast, и simulate должен надлежащим образом учитывать любые смещения или регрессионный компонент, связанные с предикторами, включенными в уравнение наблюдения.

Поэтому, прежде чем мы назовем smooth функция, чтобы вывести оцененные состояния, мы должны сначала сдувать исходные выходы, вычитая пересечение, связанное с оцененным смещением, C Тем не менее, состояния, выведенные затем, будут соответствовать сдуваемым доходностям, когда на самом деле нас интересуют сами состояния (уровень, наклон и коэффициенты кривизны), а не их смещенные аналоги. Следовательно, после сглаживания спущенные состояния должны быть повторно скорректированы путем добавления к факторам оценочного среднего, λ.

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

intercept = EstMdlSSM.C * mu';
deflatedYields = bsxfun(@minus,yields,intercept');
deflatedStates = smooth(EstMdlSSM,deflatedYields);
estimatedStates = bsxfun(@plus,deflatedStates,mu);

Теперь, когда мы вывели состояния, мы можем сравнить отдельные коэффициенты уровня, наклона и кривизны, полученные из SSM и двухэтапных подходов.

Сначала изучите уровень, или долгосрочный фактор.

figure
plot(dates, [beta(:,1) estimatedStates(:,1)])
title('Level (Long-Term Factor)')
ylabel('Percent')
datetick x
legend({'Two-Step','State-Space Model'},'location','best')

Figure contains an axes. The axes with title Level (Long-Term Factor) contains 2 objects of type line. These objects represent Two-Step, State-Space Model.

Теперь изучите наклон или краткосрочный коэффициент.

figure
plot(dates, [beta(:,2) estimatedStates(:,2)])
title('Slope (Short-Term Factor)')
ylabel('Percent')
datetick x
legend({'Two-Step','State-Space Model'},'location','best')

Figure contains an axes. The axes with title Slope (Short-Term Factor) contains 2 objects of type line. These objects represent Two-Step, State-Space Model.

Теперь изучите кривизну или среднесрочный коэффициент,

figure
plot(dates, [beta(:,3) estimatedStates(:,3)])
title('Curvature (Medium-Term Factor)')
ylabel('Percent')
datetick x
legend({'Two-Step','State-Space Model'},'location','best')

Figure contains an axes. The axes with title Curvature (Medium-Term Factor) contains 2 objects of type line. These objects represent Two-Step, State-Space Model.

а также оцененный параметр λ скорости затухания, связанный с кривизной.

dispvars = {"SSM Decay Rate (Lambda):";...
    "------------------------";...
    lambda};
cellfun(@disp,dispvars)
SSM Decay Rate (Lambda):
------------------------
    0.0778

Обратите внимание, что расчетный параметр скорости затухания несколько больше значения, используемого двухступенчатым подходом (0,0609).

Напомним, λ определяет зрелость, при которой нагрузка на кривизну максимизируется. В двухступенчатом подходе λ фиксируется на уровне 0,0609, отражая несколько произвольное решение максимизировать нагрузку кривизны ровно через 2,5 года (30 месяцев). В противоположность этому SSM оценивает максимальную нагрузку кривизны, которая имеет место всего лишь менее чем через 2 года (23,1 месяца), что можно увидеть путем построения графика нагрузки кривизны, связанной с каждым значением λ. В любом случае его поведение в форме горба как функция зрелости показывает, почему кривизна интерпретируется как среднесрочный фактор.

tau = 0:(1/12):max(maturities);    % Maturity (months)
decay = [lambda0 lambda];
loading = zeros(numel(tau), 2);

for i = 1:numel(tau)
    loading(i,:) = ((1-exp(-decay*tau(i)))./(decay*tau(i))-exp(-decay*tau(i))); 
end

figure
plot(tau,loading)
title('Loading on Curvature (Medium-Term Factor)')
xlabel('Maturity (Months)')
ylabel('Curvature Loading')
legend({'\lambda = 0.0609 Fixed by Two-Step', ['\lambda = ' num2str(lambda) ' Estimated by SSM'],},'location','best')

Figure contains an axes. The axes with title Loading on Curvature (Medium-Term Factor) contains 2 objects of type line. These objects represent \lambda = 0.0609 Fixed by Two-Step, \lambda = 0.077764 Estimated by SSM.

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

В качестве окончательного сравнения производительности в выборке теперь сравниваем средние и стандартные отклонения остатков уравнений наблюдения двух подходов аналогично таблице 2 из [2]. Результаты выражены в базисных точках (бит/с).

При создании приведенной ниже таблицы следует отметить, что матрица C чувствительности измерения состояния в составе SSM также является матрицей Λ факторных нагрузок, найденной в [2].

residualsSSM = yields - estimatedStates*EstMdlSSM.C';
residuals2Step = yields - beta*X';

residualMeanSSM = 100*mean(residualsSSM)';
residualStdSSM = 100*std(residualsSSM)';
residualMean2Step = 100*mean(residuals2Step)';
residualStd2Step = 100*std(residuals2Step)';

dispvars = {"  -------------------------------------------------";...
    "              State-Space Model       Two-Step'";...
    "            -------------------  ------------------";...
    "                       Standard            Standard";...
    "  Maturity    Mean    Deviation    Mean   Deviation";...
    "  (Months)   (bps)      (bps)     (bps)     (bps)  ";...
    "  --------  --------  ---------  -------  ---------";...
    [maturities residualMeanSSM residualStdSSM residualMean2Step residualStd2Step]};
cellfun(@disp,dispvars)
  -------------------------------------------------
              State-Space Model       Two-Step'
            -------------------  ------------------
                       Standard            Standard
  Maturity    Mean    Deviation    Mean   Deviation
  (Months)   (bps)      (bps)     (bps)     (bps)  
  --------  --------  ---------  -------  ---------
    3.0000  -12.6440   22.3639   -7.3922   14.1709
    6.0000   -1.3392    5.0715    2.1914    7.2895
    9.0000    0.4922    8.1084    2.7173   11.4923
   12.0000    1.3059    9.8672    2.5472   11.1200
   15.0000    3.7130    8.7073    4.2189    9.0558
   18.0000    3.5893    7.2946    3.5515    7.6721
   21.0000    3.2308    6.5112    2.7968    7.2221
   24.0000   -1.3996    6.3890   -2.1168    7.0764
   30.0000   -2.6479    6.0614   -3.6923    7.0129
   36.0000   -3.2411    6.5915   -4.4095    7.2674
   48.0000   -1.8508    9.7019   -2.9761   10.6242
   60.0000   -3.2857    8.0349   -4.2314    9.0296
   72.0000    1.9737    9.1370    1.2238   10.3745
   84.0000    0.6935   10.3689    0.1196    9.8012
   96.0000    3.4873    9.0440    3.0626    9.1220
  108.0000    4.1940   13.6422    3.8936   11.7942
  120.0000   -1.3074   16.4545   -1.5043   13.3544

Анализ приведенной выше таблицы показывает, что, хотя SMM не всегда лучше двухэтапного подхода при всех сроках погашения, он обеспечивает значительно лучшее соответствие при самых промежуточных сроках погашения от 6 до 60 месяцев.

Прогнозирование и моделирование Монте-Карло

В качестве окончательной иллюстрации теперь мы выделим прогнозирование минимальной среднеквадратической ошибки (MMSE) и возможности моделирования Monte Carlo функциональности SSM.

Напомним, что поскольку модель Diebold-Li зависит только от расчетных факторов, кривая доходности прогнозируется путем прогнозирования факторов. Однако, как обсуждалось выше, при прогнозировании или моделировании выходов мы должны компенсировать корректировку смещения, выполненную во время оценки SSM, и поэтому должны использовать сдуваемые выходы, на которых основана оценка.

Используя спущенные урожаи, мы теперь называем forecast функция для расчета прогнозов MMSE дефлированных выходов на 1,2,..., 12 месяцев в будущем. Фактические прогнозируемые выходы затем вычисляются путем добавления оцененного смещения к дефлированным аналогам.

Следует отметить, что прогноз кривой доходности будет иметь строку для каждого будущего периода в горизонте прогноза (12 в этом примере) и столбец для каждого срока в каждой кривой доходности (17 в этом примере).

horizon = 12;   % forecast horizon (months)

[forecastedDeflatedYields,mse] = forecast(EstMdlSSM,horizon,deflatedYields);
forecastedYields = bsxfun(@plus,forecastedDeflatedYields,intercept');

Теперь, когда детерминированные прогнозы MMSE были рассчитаны с использованием forecast функция, теперь мы иллюстрируем, как те же результаты могут быть аппроксимированы с помощью simulate функция.

Однако перед выполнением моделирования Монте-Карло мы должны сначала инициализировать средний вектор и ковариационную матрицу начальных состояний (факторов) подогнанной модели SSM, чтобы гарантировать, что моделирование начинается с самой последней доступной информации. Для этого следующий сегмент кода вызывает smooth для получения сглаженных состояний, полученных обратной рекурсией.

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

[~,~,results] = smooth(EstMdlSSM,deflatedYields);  % FILTER could also be used
EstMdlSSM.Mean0 = results(end).SmoothedStates;     % initialize the mean
cov0 = results(end).SmoothedStatesCov;
EstMdlSSM.Cov0 = (cov0 + cov0')/2;                 % initialize the covariance

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

В следующем сегменте кода каждый путь выборки представляет будущую эволюцию смоделированной кривой доходности за 12-месячный горизонт прогноза. Моделирование повторяется 100000 раз.

Аналогично ранее вычисленным прогнозам, матрица смоделированной кривой доходности имеет строку для каждого будущего периода в горизонте прогноза (12 в этом примере) и столбец для каждого срока (17 в этом примере). Однако в отличие от матрицы прогноза MMSE, матрица смоделированной кривой доходности имеет третье измерение для хранения 100 000 смоделированных путей.

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

rng('default')
nPaths = 100000;
simulatedDeflatedYields = simulate(EstMdlSSM, horizon, nPaths);
simulatedYields = bsxfun(@plus, simulatedDeflatedYields, intercept');

Теперь, когда выходы были смоделированы, вычислите среднее значение выборки и стандартное отклонение 100 000 испытаний. Эта статистика представляет собой образец аналога прогнозов MMSE и стандартных ошибок. Для облегчения расчета средств выборки и стандартных отклонений матрица смоделированных выходов переупорядочивается таким образом, что теперь она имеет 100 000 строк, 12 столбцов и 17 страниц.

simulatedYields = permute(simulatedYields,[3 1 2]); % re-order for convenience
forecasts = zeros(horizon,numel(maturities));
standardErrors = zeros(horizon,numel(maturities));

for i = 1:numel(maturities)
    forecasts(:,i) = mean(simulatedYields(:,:,i));
    standardErrors(:,i) = std(simulatedYields(:,:,i));
end

Теперь визуально сравните прогнозы MMSE и соответствующие стандартные ошибки, полученные из forecast функции наряду с функциями, полученными из simulate функция через Монте-Карло. Результаты практически идентичны.

figure
plot(maturities, [forecasts(horizon,:)' forecastedYields(horizon,:)'])
title('12-Month-Ahead Forecasts: Monte Carlo vs. MMSE')
xlabel('Maturity (Months)')
ylabel('Percent')
legend({'Monte Carlo','Minimum Mean Square Error'},'location','best')

Figure contains an axes. The axes with title 12-Month-Ahead Forecasts: Monte Carlo vs. MMSE contains 2 objects of type line. These objects represent Monte Carlo, Minimum Mean Square Error.

figure
plot(maturities, [standardErrors(horizon,:)' sqrt(mse(horizon,:))'])
title('12-Month-Ahead Forecast Standard Errors: Monte Carlo vs. MMSE')
xlabel('Maturity (Months)')
ylabel('Percent')
legend({'Monte Carlo','Minimum Mean Square Error'},'location','best')

Figure contains an axes. The axes with title 12-Month-Ahead Forecast Standard Errors: Monte Carlo vs. MMSE contains 2 objects of type line. These objects represent Monte Carlo, Minimum Mean Square Error.

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

Следующий сегмент кода отображает распределение моделируемой 12-месячной доходности через один, шесть и 12 месяцев в будущем, аналогично по духу эксперименту прогнозирования, показанному в таблицах 4-6 из [1].

index12 = find(maturities == 12);  % page index of 12-month yield
bins = 0:0.2:12;

figure
subplot(3,1,1)
histogram(simulatedYields(:,1,index12), bins, 'Normalization', 'pdf')
title('Probability Density Function of 12-Month Yield')
xlabel('Yield 1 Month into the Future (%)')

subplot(3,1,2)
histogram(simulatedYields(:,6,index12), bins, 'Normalization', 'pdf')
xlabel('Yield 6 Months into the Future (%)')
ylabel('Probability')

subplot(3,1,3)
histogram(simulatedYields(:,12,index12), bins, 'Normalization', 'pdf')
xlabel('Yield 12 Months into the Future (%)')

Figure contains 3 axes. Axes 1 with title Probability Density Function of 12-Month Yield contains an object of type histogram. Axes 2 contains an object of type histogram. Axes 3 contains an object of type histogram.

Резюме

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

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

Пример, показанный выше, иллюстрирует отображение модели Diebold-Li в форму, подходящую для моделирования с помощью функций SSM панели инструментов Econometrics, затем дополнительно иллюстрирует оценку параметров, сглаживание, прогнозирование и возможности моделирования Монте-Карло.

Ссылки

[1] Диболд, F.X. и C. Li. «Прогнозирование срочной структуры доходности государственных облигаций». Журнал эконометрики. Том 130, № 2, 2006, стр. 337-364.

[2] Диболд, Ф. Х., Г. Д. Рудебуш и Б. Аруоба (2006), «Макроэкономика и кривая выхода: динамический подход скрытого фактора». Журнал эконометрики. Том 131, 2006, стр. 309-338.

[3] Нельсон, R. C. и А. Ф. Сигель. «Парсионное моделирование кривых доходности». Журнал бизнеса. т. 60, № 4, 1987, стр. 473-489.