exponenta event banner

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

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

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

Создание модели VAR

Можно создать varm с использованием одного из двух синтаксисов: краткого или длинного.

Сокращенный синтаксис подходит для быстрого создания модели, обычно когда модель служит шаблоном для оценки. Требуемые входные данные - размерность серии ответов (numseries) и степень полинома AR (p). Многочлен AR результирующей модели VAR имеет ненулевые задержки от 1 до p. Пример см. в разделе Создание и корректировка модели VAR с использованием синтаксиса краткого описания.

Синтаксис longhand обеспечивает большую гибкость в определении параметров, чем синтаксис shorthand. Например, можно задать значения авторегрессионных матриц коэффициентов или определить, какие задержки имеют ненулевые матрицы коэффициентов. Тогда как varm для функции требуются входы numseries и p при использовании краткого синтаксиса функция должна быть способна выводить эти структурные признаки из значений, предоставляемых при использовании синтаксиса longhand. Другими словами, эти структурные характеристики не поддаются оценке. Пример см. в разделе Создание и корректировка модели VAR с использованием синтаксиса Longhand.

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

В зависимости от целей анализа можно использовать один из нескольких методов создания модели с помощью varm функция.

  • Полностью заданный объект модели (Fully Specified Model Object) - используйте этот метод, если известны значения всех параметров модели. То есть подгонку модели к данным не планируется.

  • Шаблон модели для неограниченной оценки (Model Template for Unrestricted Estimation) - используйте этот метод, если известны размерность отклика и степень полинома AR, и требуется подогнать всю модель к данным с помощью estimate.

  • Частично заданный объект модели для ограниченной оценки (Partially Specified Model Object for Restricted Estimation) - используйте этот метод, если известны размерность отклика, степень полинома AR, а также некоторые значения параметров. Например:

    • Вы знаете значения некоторых матриц коэффициентов AR или хотите проверить гипотезы.

    • Вы хотите исключить некоторые задержки из уравнения.

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

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

  • Объекты модели с компонентом регрессии для экзогенных переменных:

    • Если планируется оценить многомерную модель, содержащую компонент неограниченной регрессии, при создании модели укажите структуру модели, за исключением компонента регрессии. Затем укажите модель и экзогенные данные ('X' аргумент пары имя-значение) при вызове estimate. Следовательно, estimate включает в модель матрицу коэффициентов регрессии соответствующего размера и оценивает ее. estimate включает все экзогенные переменные в компонент регрессии каждого уравнения ответа по умолчанию.

    • Если планируется задать ограничения равенства в матрице коэффициентов регрессии для оценки или вы хотите полностью указать матрицу, используйте синтаксис longhand и 'Beta' аргумент пары «имя-значение» для указания матрицы при создании модели. Кроме того, после создания модели можно указать Beta с помощью точечной нотации. Например, чтобы исключить экзогенную переменную из уравнения, задайте элемент коэффициента, соответствующий переменной (столбец) и уравнению (строка), как 0.

varm объекты не хранят данные. Вместо этого данные задаются при работе с моделью с помощью функции объекта.

Полностью указанный объект модели

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

ИмяСтоимость
'Constant'

A numseries-D-вектор констант модели или перехватов. По умолчанию используется NaN вектор.

'Lags'

Числовой вектор авторегрессивного полинома запаздывает. Наибольшее отставание определяет p, степень модели VAR. При указании Lags, то каждый элемент соответствует элементам AR. Значение по умолчанию: 1:p.

'AR'

Клеточный вектор numseriesоколо-numseries Матрицы коэффициентов AR. Ячейки соответствуют элементам Lags. По умолчанию все ячейки содержат матрицы, состоящие из NaN значения.

'Trend'

A numseries-D вектор линейных временных трендов. По умолчанию используется вектор нулей.

'Beta'

A numseriesоколо-numpreds матрица коэффициентов регрессии. Значение по умолчанию пустое, что означает отсутствие компонента регрессии в модели.

'Covariance'

A numseriesоколо-numseries симметричная, положительная определенная инновационная ковариационная матрица. По умолчанию используется матрица, состоящая из NaN значения.

Можно также создать объект модели с помощью краткого синтаксиса, а затем скорректировать соответствующие значения свойств (за исключением Lags) с использованием точечной нотации.

Lags Аргумент пары имя-значение позволяет указать, какие задержки требуется включить. Например, чтобы задать AR lags 1 и 3 без lag 2, задайте 'Lags' кому [1 3]. Хотя этот синтаксис указывал только два лага, p является 3.

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

yt = [0,050 − 0,05] + [0,5000,10,10,300,20,3] yt − 1 + αt.

Независимые возмущения δ t распределяются как стандартные 3-D нормальные случайные величины.

В этом коде показано, как создать объект модели с помощью varm.

c  = [0.05; 0; -0.05];
AR = {[.5 0 0;.1 .1 .3;0 .2 .3]};
Covariance = eye(3);
Mdl = varm('Constant',c,'AR',AR,'Covariance',Covariance)
Mdl = 

  varm with properties:

     Description: "AR-Stationary 3-Dimensional VAR(1) Model"
     SeriesNames: "Y1"  "Y2"  "Y3" 
       NumSeries: 3
               P: 1
        Constant: [0.05 0 -0.05]'
              AR: {3×3 matrix} at lag [1]
           Trend: [3×1 vector of zeros]
            Beta: [3×0 matrix]
      Covariance: [3×3 diagonal matrix]

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

Шаблон модели для неограниченной оценки

Самый простой способ создания многомерного шаблона модели для оценки - использование краткого синтаксиса. Например, для создания VAR (2) шаблон модели для 3 серия ответов с использованием varm и его сокращенный синтаксис, введите этот код.

numseries = 3;
p = 2;
Mdl = varm(numseries,p);
Mdl представляет VAR (2) модель, содержащая неизвестные, оцениваемые параметры, включая постоянный вектор и 3около-3 матрицы коэффициентов запаздывания от запаздываний 1 до 2.

NaN элементы в массивах свойств модели указывают оцениваемые параметры. Beta свойство может быть numseries- массив по 0 и может быть оценен; estimate выводит его размерность столбца из указанных экзогенных данных. При использовании краткого синтаксиса varm устанавливает постоянный вектор, все матрицы авторегрессионных коэффициентов и инновационную ковариационную матрицу в массивы соответствующего размера NaNs.

Для отображения VAR (2) шаблон модели Mdl и посмотрите, какие параметры могут быть оценены, введите этот код.

Mdl
Mdl = 

  varm with properties:

     Description: "3-Dimensional VAR(2) Model"
     SeriesNames: "Y1"  "Y2"  "Y3" 
       NumSeries: 3
               P: 2
        Constant: [3×1 vector of NaNs]
              AR: {3×3 matrices of NaNs} at lags [1 2]
           Trend: [3×1 vector of zeros]
            Beta: [3×0 matrix]
      Covariance: [3×3 matrix of NaNs]
Mdl.Trend - вектор нулей, который указывает, что линейный временной тренд не является параметром модели.

Чтобы задать характеристики модели, отличающиеся от значений по умолчанию, используйте синтаксис longhand или настройте свойства существующей модели, доступные для записи, с помощью точечной нотации. Например, этот код показывает, как создать модель, содержащую линейный член тренда времени с оцениваемым коэффициентом, используя синтаксис longhand.

AR = cell(p,1);
AR(:) = {nan(numseries)}; % varm can infer response dimension and AR degree from AR
MdlLT = varm('AR',AR,'Trend',nan(numseries,1));
В этом коде показано, как настроить модель Mdl включать в себя оцениваемый линейный срок тренда времени.
Mdl.Trend = nan(numseries,1);

estimate подходит для всех неопределенных параметров, включая вектор константы модели, матрицы авторегрессионных коэффициентов, матрицу коэффициентов регрессии, вектор линейного тренда времени и ковариационную матрицу инноваций.

Частично указанный объект модели для ограниченной оценки

Можно создать объект модели с некоторыми известными параметрами для проверки гипотез об их значениях. estimate обрабатывает известные значения как ограничения равенства во время оценки и подгоняет оставшиеся неизвестные параметры к данным. Все коэффициенты модели VAR могут содержать комбинацию NaN и действительные вещественные числа, но инновационная ковариационная матрица должна быть полностью неизвестной (составлена полностью из NaNs) или полностью известный (положительная определенная матрица).

Этот код показывает, как указать модель в полностью указанном объекте модели, но параметры AR имеют диагональную авторегрессионную структуру и неизвестную инновационную ковариационную матрицу. varm определяет размерность переменной отклика из параметров c и ARи выводит степень модели VAR из AR.

c = [.05; 0; -.05];
AR = {diag(nan(3,1))};
Mdl = varm('Constant',c,'AR',AR)
Mdl.AR{:}
Mdl = 

  varm with properties:

     Description: "3-Dimensional VAR(1) Model"
     SeriesNames: "Y1"  "Y2"  "Y3" 
       NumSeries: 3
               P: 1
        Constant: [0.05 0 -0.05]'
              AR: {3×3 matrix} at lag [1]
           Trend: [3×1 vector of zeros]
            Beta: [3×0 matrix]
      Covariance: [3×3 matrix of NaNs]

ans =

   NaN     0     0
     0   NaN     0
     0     0   NaN

Отображение и изменение объектов модели

Предположим, имя переменной объекта модели равно Mdl. После создания Mdl, вы можете изучить его несколькими способами:

  • Войти Mdl в командной строке MATLAB ®.

  • Дважды щелкните объект в браузере рабочей области MATLAB.

  • Войти Mdl.PropertyName в командной строке MATLAB, где PropertyName - имя свойства, которое требуется проверить или переназначить.

Можно изменить любое записываемое свойство объекта модели с помощью точечной нотации:

Mdl.PropertyValue = value;

Показать объект модели

Создайте объект модели VAR (2) для трех переменных ответа. Используйте сокращенный синтаксис.

numseries = 3;
p = 2;
Mdl = varm(numseries,p);

Отображение модели VAR (2).

Mdl
Mdl = 
  varm with properties:

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

Mdl является varm объект модели. Его свойства (слева) и соответствующие значения (справа) перечислены в командной строке.

Коэффициенты, включенные в модель, являются вектором констант модели Constant и матрицы авторегрессивных полиномиальных коэффициентов AR на лагах 1 и 2. Их соответствующие значения свойств являются массивами соответствующего размера NaNs, что указывает на то, что значения неизвестны, но могут быть оценены. Аналогично, инновационная ковариационная матрица Covariance является NaN матрица, поэтому она также неизвестна, но может быть оценена.

По умолчанию линейный вектор «время-тренд» Trend состоит из нулей и матрицы коэффициентов регрессии Beta имеет размер столбца, равный нулю. Если при оценке предоставляются внешние данные Mdl с помощью estimate, MATLAB ® выводит размер столбца Beta из указанных данных, наборов Beta в матрицу NaNs, и оценивает его. В противном случае MATLAB ® игнорирует регрессионный компонент модели .

Корректировка свойства существующей модели

В этом примере показано, как исключить первое отставание из полинома AR модели VAR (2 ).

Создайте шаблон модели VAR (2), который представляет три переменные ответа. Используйте сокращенный синтаксис.

numseries = 3;
p = 2;
Mdl = varm(numseries,p)
Mdl = 
  varm with properties:

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

AR имущество Mdl сохраняет матрицы коэффициентов полинома AR в массиве ячеек. Первая ячейка содержит матрицу коэффициентов запаздывания 1, а вторая ячейка содержит матрицу коэффициентов запаздывания 2.

Установите коэффициент AR с запаздыванием 1 в матрицу нулей, используя точечную нотацию. Отображение обновленной модели.

Mdl.AR{1} = zeros(numseries);
Mdl
Mdl = 
  varm with properties:

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

Коэффициент запаздывания 1 удаляется из полинома AR модели.

Выбор экзогенных переменных для уравнений ответа

В этом примере показано, как выбрать, какие экзогенные переменные встречаются в регрессионном компоненте модели VARX (4).

Создайте шаблон модели VAR (4), который представляет три переменные ответа. Используйте сокращенный синтаксис .

numseries = 3;
p = 4;
Mdl = varm(numseries,p)
Mdl = 
  varm with properties:

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

Beta свойство содержит матрицу коэффициентов регрессии модели, a 3около-0 матрица. Потому что у него есть 0 столбцы, Mdl не имеет регрессионного компонента.

Предположим, что:

  • Планируется включить две экзогенные переменные в регрессионный компонент Mdl чтобы сделать его моделью VARX (4).

  • Ваши экзогенные данные находятся в матрице X, который не загружен в память.

  • Требуется включить экзогенную переменную 1 (сохраненную в X(:,1)) во всех уравнениях ответа и исключить экзогенную переменную 2 (сохраненную в X(:,2)) из уравнений переменных ответа 2 и 3.

  • Вы планируете вписаться Mdl к данным.

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

numpreds = 2;
Mdl.Beta = nan(numseries,numpreds);
Mdl.Beta(2:3,2) = 0;

Mdl.Beta
ans = 3×2

   NaN   NaN
   NaN     0
   NaN     0

Во время оценки, estimate подгоняет все оцениваемые параметры (элементы, имеющие значение NaN) к данным при применении этих ограничений равенства во время оптимизации:

  • β22=0.

  • β32=0.

Выберите соответствующий порядок задержки

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

  • lratiotest выполняет тест отношения правдоподобия для сравнения спецификаций вложенных моделей путем оценки значимости ограничений для расширенной модели с неограниченными параметрами. В контексте порядок запаздывания ограниченной модели меньше, чем порядок запаздывания неограниченной модели.

  • aicbic возвращает информационные критерии, такие как Akaike и байесовские информационные критерии (AIC и BIC соответственно), учитывая логические особенности, количество активных параметров подходящих моделей-кандидатов и эффективный размер выборки (необходимый для BIC или нормализации критериев). aicbic не проводит статистический тест гипотез. Модель, которая дает статистику минимального соответствия, имеет наилучшее, скрупулезное соответствие между моделями-кандидатами.

Определение минимального количества задержек с помощью теста отношения правдоподобия

lratiotest требует ввода информации о возможностях неограниченной модели, возможностях ограниченной модели и количестве степеней свободы (DoF). DoF - это разница между количеством активных параметров неограниченных и ограниченных моделей. Порядок запаздывания ограниченной модели меньше, чем порядок запаздывания неограниченной модели.

lratiotest возвращает логическое значение: 1 означает отклонить ограниченную модель в пользу неограниченной модели, и 0 означает отсутствие достаточных доказательств для отклонения модели с ограниченным доступом.

Для проведения теста отношения правдоподобия:

  1. Получение информации о том, как модели с ограниченным и неограниченным доступом подходят к данным с помощью estimate. Средство к существованию является третьим результатом (logL).

    [EstMdl,EstSE,logL,E] = estimate(...)
  2. Получить число активных параметров каждой расчетной модели (numparams) из NumEstimatedParameters поле в структуре вывода summarize.

    results = summarize(EstMdl);
    numparams = results.NumEstimatedParameters;
  3. Проведите тест отношения правдоподобия с уровнем значимости 5%, сдав следующее: lratiotestВозможность использования неограниченной модели logLU, логика модели с ограниченным доступом logLR, и DoF (dof).

    h = lratiotest(logLU,logLR,dof)

Например, предположим, что подходят четыре модели: модель 1 имеет порядок запаздывания 1, модель 2 имеет порядок запаздывания 2 и т.д. Модели имеют loglikelienties logL1, logL2, logL3, и logL4, и количество активных параметров numparams1, numparams2, numparams3, и numparams4. Провести тесты отношения правдоподобия моделей 1, 2 и 3 против модели 4 следующим образом:

h1 = lratiotest(logL4,logL1,(numparams4 - numparams1))
h2 = lratiotest(logL4,logL2,(numparams4 - numparams2))
h3 = lratiotest(logL4,logL3,(numparams4 - numparams3))

Если h1 = 1, отклонить модель 1; аналогично для моделей 2 и 3. Если lratiotest прибыль 0, недостаточно доказательств для отклонения модели с порядком запаздывания ниже 4.

Определение минимального количества задержек с использованием информационного критерия

Получить информационные критерии, такие как AIC или BIC, можно двумя способами:

  • Передача расчетной модели в summarizeи извлеките соответствующую статистику соответствия из структуры вывода.

    1. Оценка модели с помощью estimate.

      EstMdl = estimate(...);
    2. Получение AIC и BIC расчетной модели из AIC и BIC поля структуры вывода results.

      results = summarize(EstMdl);
      aic = results.AIC;
      bic = results.BIC;
  • Использовать aicbic, что требует логики модели-кандидата, ее активного счетчика параметров и эффективного размера выборки для BIC. aicbic также принимает вектор loglikelienties и вектор соответствующих активных счетчиков параметров, что позволяет сравнивать несколько совпадений моделей с помощью одного вызова функции, а также при необходимости нормализовать все критерии по размеру выборки с помощью 'Normalize' аргумент пары имя-значение.

    1. Получение логарифма каждой модели-кандидата при подборе каждой модели к данным с помощью estimate. Источником средств к существованию является третий выход.

      [EstMdl,EstSE,logL,E] = estimate(...)
    2. Получить число активных параметров каждой модели-кандидата из NumEstimatedParameters поле в структуре вывода summarize.

      results = summarize(EstMdl);
      numparams = results.NumEstimatedParameters;

Например, предположим, что подходят четыре модели: модель 1 имеет порядок запаздывания 1, модель 2 имеет порядок запаздывания 2 и т.д. Модели имеют loglikelienties logL1, logL2, logL3, и logL4, и количество активных параметров numparams1, numparams2, numparams3, и numparams4. Вычислите AIC каждой модели.

AIC = aicbic([logL1 logL2 logL3 logL4],...
             [numparams1 numparams2 numparams3 numparams4])

Наиболее подходящая модель минимизирует AIC.

См. также

Объекты

Функции

Связанные темы