infer

Выведите инновации модели векторного исправления ошибок (VEC)

Описание

пример

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

пример

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

пример

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

Примеры

свернуть все

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

  • Валовой внутренний продукт (ВВП)

  • GDP неявный ценовой дефлятор

  • Заплаченная компенсация сотрудников

  • Несельскохозяйственные часы делового сектора всех людей

  • Эффективная ставка по федеральным фондам

  • Частные потребительские расходы

  • Грубые частные внутренние инвестиции

Предположим, что cointegrating ранг 4 и один термин короткого промежутка времени является соответствующим, то есть, рассмотрите модель VEC(1).

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

load Data_USEconVECModel

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

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

figure;
subplot(2,2,1)
plot(FRED.Time,FRED.GDP);
title('Gross Domestic Product');
ylabel('Index');
xlabel('Date');
subplot(2,2,2)
plot(FRED.Time,FRED.GDPDEF);
title('GDP Deflator');
ylabel('Index');
xlabel('Date');
subplot(2,2,3)
plot(FRED.Time,FRED.COE);
title('Paid Compensation of Employees');
ylabel('Billions of $');
xlabel('Date');
subplot(2,2,4)
plot(FRED.Time,FRED.HOANBS);
title('Nonfarm Business Sector Hours');
ylabel('Index');
xlabel('Date');

Figure contains 4 axes objects. Axes object 1 with title Gross Domestic Product contains an object of type line. Axes object 2 with title GDP Deflator contains an object of type line. Axes object 3 with title Paid Compensation of Employees contains an object of type line. Axes object 4 with title Nonfarm Business Sector Hours contains an object of type line.

figure;
subplot(2,2,1)
plot(FRED.Time,FRED.FEDFUNDS);
title('Federal Funds Rate');
ylabel('Percent');
xlabel('Date');
subplot(2,2,2)
plot(FRED.Time,FRED.PCEC);
title('Consumption Expenditures');
ylabel('Billions of $');
xlabel('Date');
subplot(2,2,3)
plot(FRED.Time,FRED.GPDI);
title('Gross Private Domestic Investment');
ylabel('Billions of $');
xlabel('Date');

Figure contains 3 axes objects. Axes object 1 with title Federal Funds Rate contains an object of type line. Axes object 2 with title Consumption Expenditures contains an object of type line. Axes object 3 with title Gross Private Domestic Investment contains an object of type line.

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

FRED.GDP = 100*log(FRED.GDP);      
FRED.GDPDEF = 100*log(FRED.GDPDEF);
FRED.COE = 100*log(FRED.COE);       
FRED.HOANBS = 100*log(FRED.HOANBS); 
FRED.PCEC = 100*log(FRED.PCEC);     
FRED.GPDI = 100*log(FRED.GPDI);

Создайте модель VEC(1) с помощью краткого синтаксиса. Задайте имена переменных.

Mdl = vecm(7,4,1);
Mdl.SeriesNames = FRED.Properties.VariableNames
Mdl = 
  vecm with properties:

             Description: "7-Dimensional Rank = 4 VEC(1) Model with Linear Time Trend"
             SeriesNames: "GDP"  "GDPDEF"  "COE"  ... and 4 more
               NumSeries: 7
                    Rank: 4
                       P: 2
                Constant: [7×1 vector of NaNs]
              Adjustment: [7×4 matrix of NaNs]
           Cointegration: [7×4 matrix of NaNs]
                  Impact: [7×7 matrix of NaNs]
   CointegrationConstant: [4×1 vector of NaNs]
      CointegrationTrend: [4×1 vector of NaNs]
                ShortRun: {7×7 matrix of NaNs} at lag [1]
                   Trend: [7×1 vector of NaNs]
                    Beta: [7×0 matrix]
              Covariance: [7×7 matrix of NaNs]

Mdl vecm объект модели. Все свойства, содержащие NaN значения соответствуют параметрам, чтобы быть оцененными определенными данными.

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

EstMdl = estimate(Mdl,FRED.Variables)
EstMdl = 
  vecm with properties:

             Description: "7-Dimensional Rank = 4 VEC(1) Model"
             SeriesNames: "GDP"  "GDPDEF"  "COE"  ... and 4 more
               NumSeries: 7
                    Rank: 4
                       P: 2
                Constant: [14.1329 8.77841 -7.20359 ... and 4 more]'
              Adjustment: [7×4 matrix]
           Cointegration: [7×4 matrix]
                  Impact: [7×7 matrix]
   CointegrationConstant: [-28.6082 109.555 -77.0912 ... and 1 more]'
      CointegrationTrend: [4×1 vector of zeros]
                ShortRun: {7×7 matrix} at lag [1]
                   Trend: [7×1 vector of zeros]
                    Beta: [7×0 matrix]
              Covariance: [7×7 matrix]

EstMdl предполагаемый vecm объект модели. Это полностью задано, потому что все параметры знали значения. По умолчанию, estimate налагает ограничения формы модели H1 Йохансен VEC путем удаления cointegrating тренда и линейных терминов тренда из модели. Исключение параметра из оценки эквивалентно наложению ограничений равенства, чтобы обнулить.

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

E = infer(EstMdl,FRED.Variables);

E 238 7 матрица выведенных инноваций. Столбцы соответствуют именам переменных в EstMdl.SeriesNames.

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

Постройте остаточные значения отдельных графиков. Синхронизируйте остаточные значения с датами путем удаления первого EstMdl.P даты.

idx = FRED.Time((EstMdl.P + 1):end);

figure;
subplot(2,2,1)
plot(idx,E(:,1));
title('Residuals: GDP');
ylabel('Index (scaled)');
xlabel('Date');
subplot(2,2,2)
plot(idx,E(:,2));
title('Residuals: GDP Deflator');
ylabel('Index (scaled');
xlabel('Date');
subplot(2,2,3)
plot(idx,E(:,3));
title('Residuals: PCE');
ylabel('Billions of $ (scaled)');
xlabel('Date');
subplot(2,2,4)
plot(idx,E(:,4));
title('Residuals: NBSH');
ylabel('Index (scaled)');
xlabel('Date');

Figure contains 4 axes objects. Axes object 1 with title Residuals: GDP contains an object of type line. Axes object 2 with title Residuals: GDP Deflator contains an object of type line. Axes object 3 with title Residuals: PCE contains an object of type line. Axes object 4 with title Residuals: NBSH contains an object of type line.

figure;
subplot(2,2,1)
plot(idx,E(:,5));
title('Residuals: Federal Funds Rate');
ylabel('Percent');
xlabel('Date');
subplot(2,2,2)
plot(idx,E(:,6));
title('Residuals: COE');
ylabel('Billions of $ (scaled)');
xlabel('Date');
subplot(2,2,3)
plot(idx,E(:,7));
title('Residuals: GPDI');
ylabel('Billions of $ (scaled)');
xlabel('Date');

Figure contains 3 axes objects. Axes object 1 with title Residuals: Federal Funds Rate contains an object of type line. Axes object 2 with title Residuals: COE contains an object of type line. Axes object 3 with title Residuals: GPDI contains an object of type line.

Остаточные значения, соответствующие ставке по федеральным фондам, показывают heteroscedasticity.

Рассмотрите модель, и данные в Выводят Инновации Модели VEC.

Загрузите Data_USEconVECModel набор данных и предварительно обрабатывает данные.

load Data_USEconVECModel
FRED.GDP = 100*log(FRED.GDP);      
FRED.GDPDEF = 100*log(FRED.GDPDEF);
FRED.COE = 100*log(FRED.COE);       
FRED.HOANBS = 100*log(FRED.HOANBS); 
FRED.PCEC = 100*log(FRED.PCEC);     
FRED.GPDI = 100*log(FRED.GPDI);

Data_Recessions набор данных содержит начало и окончание последовательных дат рецессий. Загрузите этот набор данных. Преобразуйте матрицу порядковых номеров даты к массиву datetime.

load Data_Recessions
dtrec = datetime(Recessions,'ConvertFrom','datenum');

Создайте фиктивную переменную, которая идентифицирует периоды, в которые США были в рецессии или хуже. А именно, переменной должен быть 1 если FRED.Time происходит во время рецессии и 0 в противном случае.

isin = @(x)(any(dtrec(:,1) <= x & x <= dtrec(:,2)));
isrecession = double(arrayfun(isin,FRED.Time));

Создайте модель VEC(1) с помощью краткого синтаксиса. Примите, что соответствующий ранг коинтеграции равняется 4. Вы не должны задавать присутствие компонента регрессии при создании модели. Задайте имена переменных.

Mdl = vecm(7,4,1);
Mdl.SeriesNames = FRED.Properties.VariableNames;

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

EstMdl = estimate(Mdl,FRED.Variables,'X',isrecession);

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

[E,logL] = infer(EstMdl,FRED.Variables,'X',isrecession);
logL
logL = -1.4656e+03

E 238 7 матрица выведенных инноваций.

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

idx = FRED.Time((EstMdl.P + 1):end);

figure;
subplot(2,2,1)
plot(idx,E(:,1));
title('Residuals: GDP');
ylabel('Index (scaled)');
xlabel('Date');
subplot(2,2,2)
plot(idx,E(:,2));
title('Residuals: GDP Deflator');
ylabel('Index (scaled');
xlabel('Date');
subplot(2,2,3)
plot(idx,E(:,3));
title('Residuals: PCE');
ylabel('Billions of $ (scaled)');
xlabel('Date');
subplot(2,2,4)
plot(idx,E(:,4));
title('Residuals: NBSH');
ylabel('Index (scaled)');
xlabel('Date');

Figure contains 4 axes objects. Axes object 1 with title Residuals: GDP contains an object of type line. Axes object 2 with title Residuals: GDP Deflator contains an object of type line. Axes object 3 with title Residuals: PCE contains an object of type line. Axes object 4 with title Residuals: NBSH contains an object of type line.

figure;
subplot(2,2,1)
plot(idx,E(:,5));
title('Residuals: Federal Funds Rate');
ylabel('Percent');
xlabel('Date');
subplot(2,2,2)
plot(idx,E(:,6));
title('Residuals: COE');
ylabel('Billions of $ (scaled)');
xlabel('Date');
subplot(2,2,3)
plot(idx,E(:,7));
title('Residuals: GPDI');
ylabel('Billions of $ (scaled)');
xlabel('Date');

Figure contains 3 axes objects. Axes object 1 with title Residuals: Federal Funds Rate contains an object of type line. Axes object 2 with title Residuals: COE contains an object of type line. Axes object 3 with title Residuals: GPDI contains an object of type line.

Остаточные значения, соответствующие ставке по федеральным фондам, показывают heteroscedasticity.

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

свернуть все

Модель VEC в виде vecm объект модели создается vecm или estimate. Mdl должен быть полностью задан.

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

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

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

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

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

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

Аргументы name-value

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

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

Преддемонстрационные ответы, вводящие начальные значения для модели в виде разделенной запятой пары, состоящей из 'Y0' и numpreobs- numseries числовая матрица или numpreobs- numseries- 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 значения в Yy0 , и X укажите на отсутствующие значения. infer удаляет отсутствующие значения из данных мудрым списком удалением.

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

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

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

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

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

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

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

свернуть все

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

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

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

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

Алгоритмы

  • infer выводит инновации путем оценки модели VEC Mdl относительно инноваций с помощью данных, которыми снабжают, Yy0 , и X. Выведенные инновации

    ε^t=Φ^(L)ΔytA^B^yt1c^d^tβ^xt.

  • 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] Гамильтон, анализ временных рядов Джеймса Д. Принстон, NJ: Издательство Принстонского университета, 1994.

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

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

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

Смотрите также

Объекты

Функции

Введенный в R2017b
Для просмотра документации необходимо авторизоваться на сайте