varm

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

Описание

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

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

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

Создание

Описание

пример

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

пример

Mdl = varm(numseries,numlags) создает VAR (numlags) модель, состоящая из numseries серия отклика. Максимальная ненулевая задержка numlags. Все лаги имеют numseries-by- 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 и инновационных εt.

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

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

Количество отстающих ответов для включения в модель, заданное в виде неотрицательного целого числа. Получившаяся модель является VAR (numlags) модель. Все лаги имеют numseries-by- 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 должно быть равным. Лаги (j) - задержка, соответствующая матрице коэффициентов AR {j}.

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

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

Свойства

расширить все

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

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

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

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

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

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

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

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

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

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

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

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

Авторегрессионные матрицы коэффициентов, сопоставленное с отстающими откликами, задаются как камера вектор NumSeries-by- 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-by-1 числовой вектор. Значение по умолчанию не задает линейный временной тренд в модели.

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

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

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

Бета (j,:) содержит коэффициенты регрессии для каждого предиктора в уравнении отклика y j, т. Бета (:, 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-by- NumSeries числовая, положительно определенная матрица.

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

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

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

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

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

Имена рядов ответов, заданные как NumSeries длина строки вектор. Значение по умолчанию является ['Y1' 'Y2'... 'Y <reservedrangesplaceholder0>'].

Пример: '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 (CPI) и уровень безработицы (UNRATEСерия.

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

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

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.3y3,t-1+ε3,t.

Предположим, что инновации являются многомерными Гауссовыми со средним значением 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) по умолчанию с помощью синтаксиса shorthand.

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

Этот пример следует из модели Estimate 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