infer

Инновации модели коррекции ошибок вектора вывода (VEC)

Описание

пример

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

пример

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

пример

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

Примеры

свернуть все

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

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

  • Неявный дефлятор цен ВВП

  • Выплаченная компенсация работникам

  • Нерезультатное рабочее время всех лиц

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

  • Расходы на личное потребление

  • Валовые частные внутренние инвестиции

Предположим, что подходят коинтегрирующий ранг 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. Axes 1 with title Gross Domestic Product contains an object of type line. Axes 2 with title GDP Deflator contains an object of type line. Axes 3 with title Paid Compensation of Employees contains an object of type line. Axes 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. Axes 1 with title Federal Funds Rate contains an object of type line. Axes 2 with title Consumption Expenditures contains an object of type line. Axes 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) с помощью синтаксиса shorthand. Задайте имена переменных.

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 форму модели Johansen VEC путем удаления коинтегрирующего тренда и линейных терминов тренда из модели. Исключение параметра из оценки эквивалентно наложению ограничений равенства на нуль.

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

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. Axes 1 with title Residuals: GDP contains an object of type line. Axes 2 with title Residuals: GDP Deflator contains an object of type line. Axes 3 with title Residuals: PCE contains an object of type line. Axes 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. Axes 1 with title Residuals: Federal Funds Rate contains an object of type line. Axes 2 with title Residuals: COE contains an object of type line. Axes 3 with title Residuals: GPDI contains an object of type line.

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

Рассмотрим модель и данные в Infer VEC Model Innovations.

Загрузите 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);

The 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) с помощью синтаксиса shorthand. Предположим, что соответствующий ранг коинтеграции равен 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. Axes 1 with title Residuals: GDP contains an object of type line. Axes 2 with title Residuals: GDP Deflator contains an object of type line. Axes 3 with title Residuals: PCE contains an object of type line. Axes 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. Axes 1 with title Residuals: Federal Funds Rate contains an object of type line. Axes 2 with title Residuals: COE contains an object of type line. Axes 3 with title Residuals: GPDI contains an object of type line.

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

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

свернуть все

Модель VEC, заданная как vecm объект модели, созданный vecm или 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 строки для расчета предварительного удаления.

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

Алгоритмы

  • infer выводит инновации путем оценки модели VEC Mdl в отношении нововведений с использованием предоставленных данных Y, Y0, и 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] Гамильтон, Джеймс Д. Анализ временных рядов. 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.

См. также

Объекты

Функции

Введенный в R2017b