infer

Инновации модели авторегрессии вектора вывода (VAR)

Описание

пример

E = infer(Mdl,Y) возвращает выводимый многомерный ряд инноваций из оценки полностью заданной модели VAR (p) Mdl в данных отклика Y.

пример

E = infer(Mdl,Y,Name,Value) использует дополнительные опции, заданные одним или несколькими аргументами пары "имя-значение". Для примера можно задать прицельные отклики или экзогенные данные предиктора.

пример

[E,logL] = infer(___) возвращает значение целевой функции логарифмической правдоподобности, рассчитанное в E использование любого из входных параметров в предыдущих синтаксисах.

Примеры

свернуть все

Подбор модели VAR (4) к данным индекса потребительских цен (ИПЦ) и уровня безработицы. Затем выведите инновации модели с помощью предполагаемой модели.

Загрузите Data_USEconModel набор данных.

load Data_USEconModel

Постройте график двух серий на отдельных графиках.

figure;
plot(DataTable.Time,DataTable.CPIAUCSL);
title('Consumer Price Index');
ylabel('Index');
xlabel('Date');

Figure contains an axes. The axes with title Consumer Price Index contains an object of type line.

figure;
plot(DataTable.Time,DataTable.UNRATE);
title('Unemployment Rate');
ylabel('Percent');
xlabel('Date');

Figure contains an axes. The axes with title Unemployment Rate contains an object of type line.

Стабилизируйте ИПЦ путем преобразования его в ряд темпов роста. Синхронизируйте две серии путем удаления первого наблюдения из ряда уровней безработицы.

rcpi = price2ret(DataTable.CPIAUCSL);
unrate = DataTable.UNRATE(2:end);

Создайте модель VAR (4) по умолчанию с помощью синтаксиса shorthand.

Mdl = varm(2,4);

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

EstMdl = estimate(Mdl,[rcpi unrate]);

EstMdl является полностью заданным, предполагаемым varm объект модели.

Выведите инновации из предполагаемой модели.

E = infer(EstMdl,[rcpi unrate]);

E - матрица 241 на 2 выводимых инноваций. Первый и второй столбцы содержат невязки, соответствующие темпам роста ИПЦ и безработице, соответственно.

Также можно вернуть невязки при вызове estimate путем подачи переменного выхода в четвертую позицию.

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

idx = all(~isnan([rcpi unrate]),2);
datesr = DataTable.Time(idx);

figure;
plot(datesr((Mdl.P + 1):end),E(:,1));
ylabel('Consumer price index');
xlabel('Date');
title('Residual plot');
hold on
plot([min(datesr) max(datesr)],[0 0],'r--');
hold off

Figure contains an axes. The axes with title Residual plot contains 2 objects of type line.

figure;
plot(datesr((Mdl.P + 1):end),E(:,2));
ylabel('Unemployment rate');
xlabel('Date');
title('Residual plot');
hold on
plot([min(datesr) max(datesr)],[0 0],'r--');
hold off

Figure contains an axes. The axes with title Residual plot contains 2 objects of type line.

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

Оценка модели VAR (4) индекса потребительских цен (ИПЦ), уровня безработицы и валового внутреннего продукта (ВВП). Включить линейный регрессионный компонент, содержащий текущий квартал и последние четыре квартала государственных расходов и инвестиций (GCE). Выведите инновации модели.

Загрузите Data_USEconModel набор данных. Вычислите реальный ВВП.

load Data_USEconModel
DataTable.RGDP = DataTable.GDP./DataTable.GDPDEF*100;

Постройте график всех переменных на отдельных графиках.

figure;
subplot(2,2,1)
plot(DataTable.Time,DataTable.CPIAUCSL);
ylabel('Index');
title('Consumer Price Index');
subplot(2,2,2)
plot(DataTable.Time,DataTable.UNRATE);
ylabel('Percent');
title('Unemployment Rate');
subplot(2,2,3)
plot(DataTable.Time,DataTable.RGDP);
ylabel('Output');
title('Real Gross Domestic Product');
subplot(2,2,4)
plot(DataTable.Time,DataTable.GCE);
ylabel('Billions of $');
title('Government Expenditures');

Figure contains 4 axes. Axes 1 with title Consumer Price Index contains an object of type line. Axes 2 with title Unemployment Rate contains an object of type line. Axes 3 with title Real Gross Domestic Product contains an object of type line. Axes 4 with title Government Expenditures contains an object of type line.

Стабилизируйте ИПЦ, ВВП и GCE путем преобразования каждого из них в ряд темпов роста. Синхронизируйте ряд показателей безработицы с другими, удалив его первое наблюдение.

inputVariables = {'CPIAUCSL' 'RGDP' 'GCE'};
Data = varfun(@price2ret,DataTable,'InputVariables',inputVariables);
Data.Properties.VariableNames = inputVariables;
Data.UNRATE = DataTable.UNRATE(2:end);

Разверните ряд скоростей GCE к матрице, которая включает в себя его текущее значение и вверх до четырех отстающих значений. Удалите GCE переменная от Data.

rgcelag4 = lagmatrix(Data.GCE,0:4);
Data.GCE = [];

Создайте модель VAR (4) по умолчанию с помощью синтаксиса shorthand.

Mdl = varm(3,4);
Mdl.SeriesNames = ["rcpi" "unrate" "rgdpg"];

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

EstMdl = estimate(Mdl,Data.Variables,'X',rgcelag4);

Выведите инновации из предполагаемой модели. Предоставьте данные предиктора. Верните значение целевой функции логарифмической правдоподобности.

[E,logL] = infer(EstMdl,Data.Variables,'X',rgcelag4);
logL
logL = 1.7056e+03

E является матрицей 240 на 3 выводимых инноваций. Столбцы содержат невязки, соответствующие темпам роста ИПЦ, безработице и темпам роста ВВП, соответственно.

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

idx = all(~isnan([Data.Variables rgcelag4]),2);
datesr = DataTable.Time(idx);

figure;
for j = 1:Mdl.NumSeries
    subplot(2,2,j)
    plot(datesr((Mdl.P + 1):end),E(:,j));
    ylabel(Mdl.SeriesNames{j});
    xlabel('Date');
    title('Residual plot');
    hold on
    plot([min(datesr) max(datesr)],[0 0],'r--');
    hold off
end

Figure contains 3 axes. Axes 1 with title Residual plot contains 2 objects of type line. Axes 2 with title Residual plot contains 2 objects of type line. Axes 3 with title Residual plot contains 2 objects of type line.

Невязки, соответствующие темпам роста ИПЦ и ВВП, демонстрируют гетероскедастичность, поскольку ряд ИПЦ, по-видимому, переходит через периоды более высокого и низкого отклонения. Кроме того, первая половина серии ВВП, по-видимому, имеет более высокое отклонение, чем вторая половина.

Входные параметры

свернуть все

Модель VAR, заданная как varm объект модели, созданный varm или estimate. Mdl должен быть полностью задан.

Данные отклика, заданные как numobs-by- numseries числовая матрица или numobs-by- numseries-by- numpaths числовой массив.

numobs - размер выборки. numseries Количество серий отклика (Mdl.NumSeries). numpaths - количество путей отклика.

Строки соответствуют наблюдениям, а последняя строка содержит последнее наблюдение. Y представляет продолжение предварительной серии откликов в Y0.

Столбцы должны соответствовать именам переменных отклика в Mdl.SeriesNames.

Страницы соответствуют отдельным, независимым numseries-мерные пути. На всех страницах ответы в определенной строке происходят одновременно.

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

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

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

Пример: 'Y0',Y0,'X',X использует матрицу Y0 как примитивные отклики и матрица X как данные предиктора в регрессионном компоненте.

Примитивные отклики, обеспечивающие начальные значения для модели, заданные как разделенная разделенными запятой парами, состоящая из 'Y0' и a numpreobs-by- numseries числовая матрица или numpreobs-by- numseries-by- numprepaths числовой массив.

numpreobs - количество предварительных наблюдений. numprepaths - количество предварительно выбранных путей отклика.

Строки соответствуют предварительным наблюдениям, а последняя строка содержит последние наблюдения предварительных образцов. Y0 должно иметь по крайней мере Mdl.P строки. Если вы поставляете больше строк, чем нужно, infer использует только последние Mdl.P наблюдения.

Столбцы должны соответствовать столбцам Y.

Страницы соответствуют отдельным независимым путям.

  • Если Y0 является матрицей, тогда infer применяет его к каждому пути (странице) в Y. Поэтому все пути в Y получают из общих начальных условий.

  • В противном случае, infer применяется Y0 (:,:, j) по Y (:,:, j). Y0 должно иметь по крайней мере numpaths страниц, и infer использует только первое numpaths страниц.

Среди всех страниц наблюдения в определенной строке происходят одновременно.

По умолчанию, infer использует Y(1:Mdl.P,:) как предварительный образец наблюдений. Это действие уменьшает эффективный размер выборки.

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

Данные предиктора для регрессионного компонента в модели, заданные как разделенная разделенными запятой парами, состоящая из 'X' и числовую матрицу, содержащую numpreds столбцы.

numpreds - количество переменных предиктора (size(Mdl.Beta,2)).

Строки соответствуют наблюдениям, а последняя строка содержит последнее наблюдение. infer не использует регрессионный компонент в предварительном образце периода. Поэтому X должно иметь, по крайней мере, столько наблюдений, сколько используется после периода предварительного образца.

  • Если вы задаете Y0, затем X должно иметь по крайней мере numobs строки (см. Y).

  • В противном случае X должно иметь по крайней мере numobsMdl.P наблюдения для расчета удаления предварительного образца.

В любом случае, если вы поставляете больше строк, чем необходимо, infer использует только последние наблюдения.

Столбцы соответствуют отдельным переменным предиктора. Все переменные предиктора присутствуют в регрессионном компоненте каждого уравнения отклика.

infer применяется X на каждый путь (страницу) в Y; то есть X представляет один путь наблюдаемых предикторов.

По умолчанию, infer исключает регрессионный компонент, независимо от его присутствия в Mdl.

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

Примечание

NaN значения в Y, Y0, и X указать отсутствующие значения. infer удаляет отсутствующие значения из данных путем перечисленного удаления.

  1. Если Y является трехмерный массив, тогда infer горизонтально конкатенирует страницы Y для формирования numobs-by- (numpaths*numseries + numpreds) матрица.

  2. Если присутствует регрессионный компонент, то infer горизонтально конкатенирует X на Y для формирования numobs-by- numpaths*numseries + 1 матрица. infer принимает, что последние строки каждой серии происходят одновременно.

  3. infer удаляет все строки, содержащие по крайней мере одну NaN из конкатенированных данных.

  4. infer применяет шаги 1 и 3 к предварительным образцам путей в Y0.

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

Этот тип сокращения данных уменьшает эффективный размер выборки.

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

свернуть все

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

  • Если вы задаете Y0, затем E имеет numobs строки (см. Y).

  • В противном случае E имеет numobsMdl.P строки для расчета предварительного удаления.

Значение целевой функции логарифмической правдоподобности, сопоставленное с моделью VAR Mdl, возвращенный как числовой скаляр или numpaths-элементный числовой вектор. logL (j) соответствует пути отклика в Y (:,:, j).

Алгоритмы

  • infer выводит инновации путем оценки модели VAR Mdl в отношении нововведений с использованием предоставленных данных Y, Y0, и X. Предполагаемые инновации

    ε^t=Φ^(L)ytc^β^xtδ^t.

  • infer использует этот процесс для определения времени источника t 0 моделей, которые включают линейные временные тренды.

    • Если вы не задаете Y0, затем t 0 = 0.

    • В противном случае, infer устанавливает t 0 в size(Y0,1)Mdl.P. Поэтому время в компоненте тренда: t = t 0 + 1, t 0 + 2,..., t 0 + numobs, где numobs является эффективным размером выборки (size(Y,1) после infer удаляет отсутствующие значения). Это соглашение согласуется с поведением по умолчанию оценки модели, в которой estimate удаляет первый Mdl.P ответы, уменьшение эффективного размера выборки. Хотя infer явно использует первое Mdl.P примитивируйте отклики в Y0 чтобы инициализировать модель, общее количество наблюдений в Y0 и Y (исключая отсутствующие значения) определяет t 0.

Ссылки

[1] Гамильтон, Джеймс Д. Анализ временных рядов. Princeton, NJ: Princeton University Press, 1994.

[2] Йохансен, С. Основанный на вероятностях вывод в коинтегрированных векторных авторегрессивных моделях. Oxford: Oxford University Press, 1995.

[3] Juselius, K. Cointegrated VAR Model. Oxford: Oxford University Press, 2006.

[4] Lütkepohl, H. Новое введение в анализ нескольких временных рядов. Берлин: Спрингер, 2005.

Введенный в R2017a