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

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

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

Создайте модель VAR

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

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

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

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

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

  • Полностью Заданный Объект модели – Использование этот метод, когда вы знаете значения всех параметров вашей модели. Таким образом, вы не планируете подбирать модель к данным.

  • Шаблон модели для Неограниченной Оценки – Использование этот метод, когда вы знаете размерность ответа и степень полинома AR, и вы хотите подбирать целую модель к использованию данных estimate.

  • Частично Заданный Объект модели для Ограниченной Оценки – Использование этот метод, когда вы знаете размерность ответа, степень полинома AR, а также некоторые значения параметров. Например:

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

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

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

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

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

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

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

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

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

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

ИмяЗначение
'Constant'

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

'Lags'

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

'AR'

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

'Trend'

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

'Beta'

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

'Covariance'

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

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

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

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

yt=[0.0500.05]+[0.5000.10.10.300.20.3]yt1+ε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 нулевой вектор, который указывает, что линейный тренд времени не является параметром модели.

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

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 матрицы коэффициентов.

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

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 модели.

Выберите Exogenous Variables for Response Equations

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

Выберите Appropriate Lag Order

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

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

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

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

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

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

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

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

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

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

    h = lratiotest(logLU,logLR,dof)

Например, предположите, что вы подбираете четыре модели: модель 1 имеет порядок задержки 1, модель 2 имеет порядок задержки 2 и так далее. Модели имеют логарифмическую правдоподобность 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, и извлеките соответствующую подходящую статистическую величину из структуры output.

    1. Оцените использование модели estimate.

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

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

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

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

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

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

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

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

Смотрите также

Объекты

Функции

Похожие темы