exponenta event banner

varm

Создание векторной модели авторегрессии (VAR)

Описание

varm функция возвращает varm объект, определяющий функциональную форму и сохраняющий значения параметров модели авторегрессии вектора (VAR (p)) p-порядка, стационарной, многомерной.

Ключевые компоненты varm объект включает в себя количество временных рядов (размерность переменной отклика) и порядок многомерного авторегрессионного полинома (p), поскольку они полностью задают структуру модели. Другие компоненты модели включают в себя компонент регрессии, чтобы связать одни и те же экзогенные переменные предиктора с каждой серией ответов, и термины постоянной и временной тенденции. Учитывая размерность переменной отклика и p, все матрицы коэффициентов и параметры распределения инноваций неизвестны и могут быть оценены, если не указать их значения.

Чтобы оценить модели, содержащие неизвестные значения параметров, передайте модель и данные в estimate. Работа с оценочным или полностью указанным varm объект модели, передайте его функции объекта.

Создание

Описание

пример

Mdl = varm создает модель VAR (0), состоящую из одного ряда ответов.

пример

Mdl = varm(numseries,numlags) создает VAR (numlags) модель, состоящая из numseries серия ответов. Максимальное ненулевое отставание - numlags. Все задержки имеют numseriesоколо-numseries матрицы коэффициентов, состоящие из NaN значения.

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

пример

Mdl = varm(Name,Value) задает свойства или дополнительные параметры, используя аргументы пары имя-значение. Заключите каждое имя в кавычки. Например, 'Lags',[1 4],'AR',AR задает две матрицы авторегрессионных коэффициентов в AR при лагах 1 и 4.

Этот синтаксис longhand позволяет создавать более гибкие модели. varm выводит количество серий (NumSeries) и авторегрессивной степени полинома (P) из заданных свойств. Поэтому значения свойств, которые соответствуют числу рядов или авторегрессионной степени полинома, должны быть согласованы друг с другом.

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

развернуть все

Краткий синтаксис обеспечивает простой способ создания шаблонов моделей, подходящих для неограниченной оценки параметров. Например, чтобы создать модель VAR (2), состоящую из трех рядов ответов, введите:

Mdl = varm(3,2);

Число временных рядов m, указанное как положительное целое число. numseries определяет размерность переменной многомерного ответа yt и innovation αt.

numseries устанавливает NumSeries собственность.

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

Количество отложенных ответов для включения в модель, указанное как неотрицательное целое число. Полученная модель является VAR (numlags) модель. Все задержки имеют numseriesоколо-numseries матрицы коэффициентов, состоящие из NaN значения.

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

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

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

Синтаксис longhand позволяет создавать модели, в которых известны некоторые или все коэффициенты. Во время оценки, estimate накладывает ограничения равенства на любые известные параметры.

Пример: 'Lags',[4 8] задает модель VAR (8) с матрицами с ненулевыми авторегрессионными коэффициентами на лагах4 и 8.

Чтобы задать значения для свойств, доступных для записи, используйте Name,Value синтаксис парного аргумента. Например, 'Constant',[1; 2],'AR',{[0.1 -0.2; -0.3 0.5]} наборы Constant кому [1; 2] и AR кому {[0.1 -0.2; -0.3 0.5]}.

Авторегрессивные задержки многочлена, указанные как пара, разделенная запятыми, состоящая из 'Lags' и числовой вектор, содержащий не более P элементы уникальных положительных целых чисел.

Длины Lags и AR должно быть равным. Lags(j) - запаздывание, соответствующее матрице коэффициентов, AR{j}.

Пример: 'Lags',[1 4]

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

Свойства

развернуть все

Значения свойств, доступные для записи, можно задать при создании объекта модели с помощью синтаксиса аргумента пара имя-значение или после создания объекта модели с помощью точечной нотации. Например, чтобы создать модель VAR (1), состоящую из двух рядов ответов, а затем указать неизвестный термин временного тренда, введите:

Mdl = varm('AR',{NaN(2)});
Mdl.Trend = NaN;

Это свойство доступно только для чтения.

Число временных рядов m, указанное как положительное целое число. NumSeries определяет размерность переменной многомерного ответа yt и innovation αt.

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

Это свойство доступно только для чтения.

Многомерный авторегрессивный полиномиальный порядок, заданный как неотрицательное целое число. P - максимальное отставание, имеющее ненулевую матрицу коэффициентов. Задержки, которые меньше P может иметь матрицы коэффициентов, полностью состоящие из нулей.

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

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

Перехват модели (или константы), указанный как NumSeries-по-1 числовой вектор.

Пример: 'Constant',[1; 2]

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

Матрицы авторегрессионных коэффициентов, связанные с запаздывающими откликами, заданными как вектор ячейки NumSeriesоколо-NumSeries числовые матрицы.

Укажите знаки коэффициентов, соответствующие этим коэффициентам в модели VAR, выраженным в нотации «разность-уравнение».

  • Если установить Lags аргумент пары имя-значение для Lags, то применяются следующие условия.

    • Длины AR и Lags равны.

    • AR{j} - матрица коэффициентов запаздывания Lags(j).

    • По умолчанию AR является numel(Lags)-by-1 клеточный вектор матриц, состоящий из NaN значения.

  • В противном случае применяются следующие условия.

    • Длина AR является P.

    • AR{j} - матрица коэффициентов запаздывания j.

    • По умолчанию AR является P-by-1 клеточный вектор матриц, состоящий из NaN значения.

Пример: 'AR',{[0.5 -0.1; 0.1 0.2]}

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

Срок линейного тренда времени, указанный как NumSeries-по-1 числовой вектор. Значение по умолчанию указывает на отсутствие линейного тренда времени в модели.

Пример: 'Trend',[0.1; 0.2]

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

Матрица коэффициентов регрессии, связанная с переменными предиктора, заданная как NumSeriesоколо-NumPreds числовая матрица. NumPreds - количество переменных предиктора, то есть количество столбцов в данных предиктора.

Beta(j,:) содержит коэффициенты регрессии для каждого предиктора в уравнении отклика yj, т .Beta(:,k) содержит коэффициент регрессии в каждом уравнении отклика для предсказателя xk. По умолчанию все переменные предиктора находятся в регрессионной составляющей всех уравнений ответа. Можно исключить определенные предикторы из определенных уравнений, задав ограничения равенства равным 0.

Пример: В модели, которая включает 3 ответа и 4 переменные предиктора, чтобы исключить второй предиктор из третьего уравнения и оставить остальные неограниченными, укажите [NaN NaN NaN NaN; NaN NaN NaN NaN; NaN 0 NaN NaN].

Значение по умолчанию указывает на отсутствие коэффициента регрессии в модели. Однако если указать данные предиктора при оценке модели с помощью estimateзатем аппараты MATLAB ®Beta в матрицу соответствующего размера NaN значения.

Пример: 'Beta',[2 3 -1 2; 0.5 -1 -6 0.1]

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

Инновационная ковариационная матрица NumSeries нововведения в каждый момент времени t = 1,...,T, указанные как NumSeriesоколо-NumSeries числовая, положительная определенная матрица.

Пример: 'Covariance',eye(2)

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

Описание модели, указанное как строковый скалярный или символьный вектор. varm сохраняет значение в виде строкового скаляра. Значение по умолчанию описывает параметрическую форму модели, например "2-Dimensional VAR(3) Model".

Пример: 'Description','Model 1'

Типы данных: string | char

Имена серий ответов, указанные как NumSeries вектор строки длины. Значение по умолчанию: ['Y1' 'Y2' ... 'YNumSeries'].

Пример: 'SeriesNames',{'CPI' 'Unemployment'}

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

Примечание

NaN-значимые элементы в свойствах указывают неизвестные, оцениваемые параметры. Указанные элементы указывают на ограничения равенства параметров при оценке модели. Инновационная ковариационная матрица Covariance не может содержать сочетание NaN значения и реальные числа; необходимо полностью указать ковариацию или она должна быть полностью неизвестной (NaN(NumSeries)).

Функции объекта

estimateПодгонка векторной модели авторегрессии (VAR) к данным
fevdСоздать декомпозицию дисперсии ошибки прогноза векторной авторегрессии (VAR) (FEVD)
filterФильтрация возмущений с помощью векторной модели авторегрессии (VAR)
forecastОтклики модели авторегрессии вектора прогноза (VAR)
gctestТесты причинности Грейнджера и экзогенности блоков для моделей векторной авторегрессии (VAR)
inferИнновации векторной авторегрессионной модели (VAR)
irfГенерация импульсных откликов векторной авторегрессии (VAR)
simulateМоделирование модели векторной авторегрессии (VAR) Монте-Карло
summarizeОтображение результатов оценки модели векторной авторегрессии (VAR)
vecmПреобразование модели векторной авторегрессии (VAR) в модель векторной коррекции ошибок (VEC)

Примеры

свернуть все

Создайте модель VAR нулевой степени, состоящую из одной серии ответов.

Mdl = varm
Mdl = 
  varm with properties:

     Description: "1-Dimensional VAR(0) Model"
     SeriesNames: "Y" 
       NumSeries: 1
               P: 0
        Constant: NaN
              AR: {}
           Trend: 0
            Beta: [1×0 matrix]
      Covariance: NaN

Mdl является varm объект модели. Он содержит один ряд ответов, неизвестную константу и неизвестную дисперсию инноваций. Свойства модели отображаются в командной строке.

Предположим, что проблема имеет авторегрессивный коэффициент с запаздыванием 1. Для создания такой модели установите свойство авторегрессионного коэффициента (AR) в ячейку, содержащую NaN значение с использованием точечной нотации.

Mdl.AR = {NaN}
Mdl = 
  varm with properties:

     Description: "1-Dimensional VAR(1) Model"
     SeriesNames: "Y" 
       NumSeries: 1
               P: 1
        Constant: NaN
              AR: {NaN} at lag [1]
           Trend: 0
            Beta: [1×0 matrix]
      Covariance: NaN

Если проблема содержит несколько серий ответов, используйте другой varm синтаксис для создания модели.

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

Загрузить Data_USEconModel набор данных. Объявить переменные для ИПЦ (CPI) и уровень безработицы (UNRATEСерия.

load Data_USEconModel
cpi = DataTable.CPIAUCSL;
unrate = DataTable.UNRATE;

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

Mdl = varm(2,4)
Mdl = 
  varm with properties:

     Description: "2-Dimensional VAR(4) Model"
     SeriesNames: "Y1"  "Y2" 
       NumSeries: 2
               P: 4
        Constant: [2×1 vector of NaNs]
              AR: {2×2 matrices of NaNs} at lags [1 2 3 ... and 1 more]
           Trend: [2×1 vector of zeros]
            Beta: [2×0 matrix]
      Covariance: [2×2 matrix of NaNs]

Mdl является varm объект модели. Он служит шаблоном для оценки модели. MATLAB ® рассматривает любыеNaN значения как неизвестные значения параметров для оценки. Например, Constant свойство является вектором 2 на 1 NaN значения. Поэтому константы модели являются активными параметрами модели, которые необходимо оценить.

Включите неизвестный член линейного временного тренда, установив значение Trend свойство для NaN с использованием точечной нотации.

Mdl.Trend = NaN
Mdl = 
  varm with properties:

     Description: "2-Dimensional VAR(4) Model with Linear Time Trend"
     SeriesNames: "Y1"  "Y2" 
       NumSeries: 2
               P: 4
        Constant: [2×1 vector of NaNs]
              AR: {2×2 matrices of NaNs} at lags [1 2 3 ... and 1 more]
           Trend: [2×1 vector of NaNs]
            Beta: [2×0 matrix]
      Covariance: [2×2 matrix of NaNs]

MATLAB расширяется NaN до соответствующей длины, то есть вектора 2 на 1 NaN значения.

Создайте модель VAR для трех произвольных серий ответов. Укажите значения параметров в этой системе уравнений.

y1, t = 1 + 0,2y1, t-1-0,1y2, t-1 + 0,5y3, t-1 + 1,5t + α1, ty2, t = 1-0,4y1, t-1 + 0,5y2, t-1 + 2t + α2, ty3, t = -0,1y1, t-1 + 0,2y2, t-1 + 0,3y2

Предположим, что нововведения являются многомерными гауссовыми со средним значением 0 и ковариационной матрицей

Σ=[0.10.010.30.010.500.301].

Создайте переменные для значений параметров.

c = [1; 1; 0];
Phi1 = {[0.2 -0.1 0.5; -0.4 0.2 0; -0.1 0.2 0.3]}; 
delta = [1.5; 2; 0];
Sigma = [0.1 0.01 0.3; 0.01 0.5 0; 0.3 0 1];

Создайте объект модели VAR (1), представляющий систему динамических уравнений, используя соответствующие аргументы пары имя-значение.

Mdl = varm('Constant',c,'AR',Phi1,'Trend',delta,'Covariance',Sigma)
Mdl = 
  varm with properties:

     Description: "AR-Stationary 3-Dimensional VAR(1) Model with Linear Time Trend"
     SeriesNames: "Y1"  "Y2"  "Y3" 
       NumSeries: 3
               P: 1
        Constant: [1 1 0]'
              AR: {3×3 matrix} at lag [1]
           Trend: [1.5 2 0]'
            Beta: [3×0 matrix]
      Covariance: [3×3 matrix]

Mdl является полностью указанным varm объект модели. По умолчанию varm приписывает коэффициент авторегрессии первому запаздыванию.

Можно настроить свойства модели с помощью точечных обозначений. Например, рассмотрим другую модель VAR, которая приписывает матрицу авторегрессионных коэффициентов Phi1 ко второму члену запаздывания, задает матрицу нулей для первого коэффициента запаздывания и рассматривает все остальное как равное Mdl. Создайте эту модель VAR (2).

Mdl2 = Mdl;
Phi = [zeros(3,3) Phi1];
Mdl2.AR = Phi
Mdl2 = 
  varm with properties:

     Description: "AR-Stationary 3-Dimensional VAR(2) Model with Linear Time Trend"
     SeriesNames: "Y1"  "Y2"  "Y3" 
       NumSeries: 3
               P: 2
        Constant: [1 1 0]'
              AR: {3×3 matrix} at lag [2]
           Trend: [1.5 2 0]'
            Beta: [3×0 matrix]
      Covariance: [3×3 matrix]

Можно также создать другой объект модели с помощью varm и тот же синтаксис, что и для Mdl, но дополнительно указать 'Lags',2.

Соответствие модели 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) по умолчанию с использованием краткого синтаксиса.

Mdl = varm(2,4)
Mdl = 
  varm with properties:

     Description: "2-Dimensional VAR(4) Model"
     SeriesNames: "Y1"  "Y2" 
       NumSeries: 2
               P: 4
        Constant: [2×1 vector of NaNs]
              AR: {2×2 matrices of NaNs} at lags [1 2 3 ... and 1 more]
           Trend: [2×1 vector of zeros]
            Beta: [2×0 matrix]
      Covariance: [2×2 matrix of NaNs]

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

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

EstMdl = estimate(Mdl,[rcpi unrate])
EstMdl = 
  varm with properties:

     Description: "AR-Stationary 2-Dimensional VAR(4) Model"
     SeriesNames: "Y1"  "Y2" 
       NumSeries: 2
               P: 4
        Constant: [0.00171639 0.316255]'
              AR: {2×2 matrices} at lags [1 2 3 ... and 1 more]
           Trend: [2×1 vector of zeros]
            Beta: [2×0 matrix]
      Covariance: [2×2 matrix]

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

Отображение сводной статистики из оценки.

summarize(EstMdl)
 
   AR-Stationary 2-Dimensional VAR(4) Model
 
    Effective Sample Size: 241
    Number of Estimated Parameters: 18
    LogLikelihood: 811.361
    AIC: -1586.72
    BIC: -1524
 
                      Value       StandardError    TStatistic      PValue  
                   ___________    _____________    __________    __________

    Constant(1)      0.0017164      0.0015988         1.0735        0.28303
    Constant(2)        0.31626       0.091961          3.439      0.0005838
    AR{1}(1,1)         0.30899       0.063356          4.877     1.0772e-06
    AR{1}(2,1)         -4.4834         3.6441        -1.2303        0.21857
    AR{1}(1,2)      -0.0031796      0.0011306        -2.8122       0.004921
    AR{1}(2,2)          1.3433       0.065032         20.656      8.546e-95
    AR{2}(1,1)         0.22433       0.069631         3.2217      0.0012741
    AR{2}(2,1)          7.1896          4.005         1.7951       0.072631
    AR{2}(1,2)       0.0012375      0.0018631         0.6642        0.50656
    AR{2}(2,2)        -0.26817        0.10716        -2.5025       0.012331
    AR{3}(1,1)         0.35333       0.068287         5.1742     2.2887e-07
    AR{3}(2,1)           1.487         3.9277        0.37858          0.705
    AR{3}(1,2)       0.0028594      0.0018621         1.5355        0.12465
    AR{3}(2,2)        -0.22709         0.1071        -2.1202       0.033986
    AR{4}(1,1)       -0.047563       0.069026       -0.68906        0.49079
    AR{4}(2,1)          8.6379         3.9702         2.1757       0.029579
    AR{4}(1,2)     -0.00096323      0.0011142       -0.86448        0.38733
    AR{4}(2,2)        0.076725       0.064088         1.1972        0.23123

 
   Innovations Covariance Matrix:
    0.0000   -0.0002
   -0.0002    0.1167

 
   Innovations Correlation Matrix:
    1.0000   -0.0925
   -0.0925    1.0000

Этот пример следует из модели оценки VAR (4).

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

load Data_USEconModel
cpi = DataTable.CPIAUCSL;
unrate = DataTable.UNRATE;

rcpi = price2ret(cpi);
unrate = unrate(2:end);
Y = [rcpi unrate];

Mdl = varm(2,4);
EstMdl = estimate(Mdl,Y(1:(end-10),:));

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

YF = forecast(EstMdl,10,Y(1:(end-10),:));

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

figure;
plot(DataTable.Time(end - 50:end),rcpi(end - 50:end));
hold on
plot(DataTable.Time((end - 9):end),YF(:,1))
h = gca;
fill(DataTable.Time([end - 9 end end end - 9]),h.YLim([1,1,2,2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend('True CPI growth rate','Forecasted CPI growth rate',...
    'Location','NW')
title('Quarterly CPI Growth Rate: 1947 - 2009');
ylabel('CPI growth rate');
xlabel('Year');
hold off

Figure contains an axes. The axes with title Quarterly CPI Growth Rate: 1947 - 2009 contains 3 objects of type line, patch. These objects represent True CPI growth rate, Forecasted CPI growth rate.

figure;
plot(DataTable.Time(end - 50:end),unrate(end - 50:end));
hold on
plot(DataTable.Time((end - 9):end),YF(:,2))
h = gca;
fill(DataTable.Time([end - 9 end end end - 9]),h.YLim([1,1,2,2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend('True unemployment rate','Forecasted unemployment rate',...
    'Location','NW')
title('Quarterly Unemployment Rate: 1947 - 2009');
ylabel('Unemployment rate');
xlabel('Year');
hold off

Figure contains an axes. The axes with title Quarterly Unemployment Rate: 1947 - 2009 contains 3 objects of type line, patch. These objects represent True unemployment rate, Forecasted unemployment rate.

Подробнее

развернуть все

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