exponenta event banner

вывести

Инновации модели векторной коррекции ошибок (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(___) возвращает значение целевой функции loglikelique, оцененное в 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) с использованием краткого синтаксиса. Укажите имена переменных.

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

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

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

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

  1. Если Y является массивом 3-D, то 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 для учета удаления предварительной пробы.

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

Алгоритмы

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

    λ ^ t = Λ ^ (L) Δyt−A^B^′yt−1−c^−d^t−β^xt.

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

    • Если не указать Y0, то t0 = 0.

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

Ссылки

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

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

[3] Джуселиус, К. Коинтегрированная модель VAR. Oxford: Oxford University Press, 2006.

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

См. также

Объекты

Функции

Представлен в R2017b