вывести

Выведите векторную модель авторегрессии (VAR) инновации

Синтаксис

E = infer(Mdl,Y)
E = infer(Mdl,Y,Name,Value)
[E,logL] = infer(___)

Описание

пример

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

пример

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

пример

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

Примеры

свернуть все

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

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

load Data_USEconModel

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

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

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

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

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

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

Mdl = varm(2,4);

Оцените модель с помощью целого набора данных.

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

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

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

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

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

Также можно возвратить невязки, когда вы вызываете 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;
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

Невязки, соответствующие темпу роста CPI, показывают heteroscedasticity, потому что ряд, кажется, циклически повторяется через периоды выше и более низкое отклонение.

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

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

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');

Стабилизируйте CPI, GDP и 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) по умолчанию с помощью краткого синтаксиса.

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

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

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

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

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

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

Постройте невязки на отдельных графиках. Синхронизируйте невязки с датами путем удаления любых недостающих наблюдений из данных и удаления первых дат 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

Невязки, соответствующие CPI и темпам роста GDP, показывают heteroscedasticity, потому что серия CPI, кажется, циклически повторяется через периоды выше и более низкое отклонение. Кроме того, первая половина серии GDP, кажется, имеет более высокое отклонение, чем последняя половина.

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

свернуть все

Модель 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

Преддемонстрационные ответы, обеспечивающие начальные значения для модели, заданной как пара, разделенная запятой, состоящая из 'Y0' и 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 должен иметь, по крайней мере, numobs – наблюдения Mdl.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 имеет numobs – строки Mdl.P, чтобы составлять преддемонстрационное удаление.

Значение целевой функции Loglikelihood сопоставило с моделью 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] Гамильтон, J. D. Анализ timeseries. Принстон, NJ: Издательство Принстонского университета, 1994.

[2] Йохансен, S. Основанный на вероятности вывод в векторных авторегрессивных моделях Cointegrated. Оксфорд: Издательство Оксфордского университета, 1995.

[3] Juselius, K. Модель VAR Cointegrated. Оксфорд: Издательство Оксфордского университета, 2006.

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

Введенный в R2017a