varm

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

Описание

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

Ключевые компоненты varm объект включает количество временных рядов (response-variable dimensionality) и порядок многомерного авторегрессивного полинома (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.

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

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

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

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

Mdl = varm(3,2);

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

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

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

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

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

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

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

Рукописный синтаксис позволяет вам создать модели, в которых некоторые или все коэффициенты известны. Во время оценки, 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- 1 числовой вектор.

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

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

Авторегрессивные содействующие матрицы сопоставлены с изолированными ответами в виде вектора ячейки NumSeries- NumSeries числовые матрицы.

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

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

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

    • AR {j} матрица коэффициентов Задержек задержки (j).

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

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

    • Длина AR P.

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

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

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

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

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

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

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

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

Бета (j,:) содержит коэффициенты регрессии для каждого предиктора в уравнении ответа yjT. \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Сгенерируйте векторное разложение отклонения ошибки прогноза (FEVD) модели (VAR) авторегрессии
filterПропустите воздействия через векторную модель (VAR) авторегрессии
forecastПредскажите векторные ответы модели (VAR) авторегрессии
gctestПричинная связь Грейнджера и блок exogeneity тестируют на векторные модели (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) для индекса потребительских цен (CPI) и уровня безработицы.

Загрузите Data_USEconModel набор данных. Объявите переменные для CPI (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.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) к данным об уровне безработицы и индексу потребительских цен (CPI).

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

load Data_USEconModel

Постройте два ряда на отдельных графиках.

figure;
plot(DataTable.Time,DataTable.CPIAUCSL);
title('Consumer Price Index');
ylabel('Index');
xlabel('Date');

figure;
plot(DataTable.Time,DataTable.UNRATE);
title('Unemployment Rate');
ylabel('Percent');
xlabel('Date');

Стабилизируйте CPI путем преобразования его в серию темпов роста. Синхронизируйте два ряда путем удаления первого наблюдения из ряда уровня безработицы.

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) для темпа роста CPI и показателей безработицы. Обработайте последние десять периодов как горизонт прогноза.

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

Больше о

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

Введенный в R2017a

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