Многомерное создание модели временных рядов

Модели для нескольких временных рядов

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

По умолчанию varm устанавливает неизвестные значения параметров на NaN на основе его заданной структуры. значения NaN в образцовых свойствах указывают, что параметр присутствует, но значение неизвестно и потребности, соответствующие к данным. Несмотря на то, что, данные временных рядов мотивируют образцовое создание, они не требуются, чтобы создавать модель. Если у вас есть данные, можно соответствовать моделям к данным, как описано по Оценке Модели VAR. Если у вас нет данных, можно создать полностью заданную модель, то есть, вы обеспечиваете все значения параметров, как описано в Объектах модели с Известными Параметрами.

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

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

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

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

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

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

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

  • Объекты модели с Выбранными Значениями параметров. Используйте этот метод, когда вы знаете размер, введите, и количество задержек в вашей модели, и также знайте некоторых, но не все, значений параметров. Например, вы знаете значения некоторых содействующих матриц AR. Чтобы оценить любые неизвестные значения параметров, вы передаете объект модели и данные к estimate, который применяет ограничения равенства ко всем известным параметрам в их значениях и оценивает остальных.

Создайте и настройте модель VAR Используя краткий синтаксис

Этот пример показывает, как создать 3D модель VAR (4) с неизвестными параметрами с помощью varm и краткого синтаксиса. Затем этот пример показывает, как настроить параметры созданной модели с помощью записи через точку.

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

numseries = 3;
p = 4;
Mdl = varm(3,4)
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]

Mdl является объектом модели varm. Свойства образцового отображения в командной строке. Заметьте что:

  • Значение по умолчанию некоторых параметров является значениями NaN, который указывает на их присутствие в модели. В частности, каждая задержка от 1 до 4 имеет неизвестную, ненулевую авторегрессивную матрицу коэффициентов.

  • Вы создали модель, не используя данные об ответе. Таким образом, Mdl является агностиком о данных.

Предположим, что вы хотите, чтобы задержки 1 и 4 в модели были неизвестными и ненулевыми, но все другие задержки являются нулем. Используя запись через точку, удалите другие задержки из объекта модели путем размещения 3х3 матриц нулей соответствующие ячейки.

Mdl.AR{2} = zeros(3);
Mdl.AR{3} = zeros(3)
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} at lags [1 4]
           Trend: [3×1 vector of zeros]
            Beta: [3×0 matrix]
      Covariance: [3×3 matrix of NaNs]

Заметьте, что степень модели, p является все еще 4, но существует неизвестные, ненулевые коэффициенты в задержках 1 и 4 только.

Создайте и настройте модель VAR Используя рукописный синтаксис

Этот пример показывает, как создать 3D модель VAR (4) с неизвестными параметрами с помощью varm и рукописного синтаксиса. Затем этот пример показывает, как настроить параметры созданной модели с помощью записи через точку.

Создайте модель VAR (4) для 3D ряда ответа. Укажите, что существуют неизвестные содействующие матрицы в задержках 1 и 4 только.

numseries = 3;
p = 4;
ar = {nan(3) nan(3)};
lags = [1 p];
Mdl = varm('AR',ar,'Lags',lags)
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} at lags [1 4]
           Trend: [3×1 vector of zeros]
            Beta: [3×0 matrix]
      Covariance: [3×3 matrix of NaNs]

Mdl является объектом модели varm. Свойства образцового отображения в командной строке. Заметьте что:

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

  • Вы создали модель, не используя данные об ответе. Таким образом, Mdl является агностиком о данных.

Предположим, что вы хотите добавить линейный тренд времени в модель, которая будет оценена. По умолчанию линейный тренд времени является нулем. Чтобы сделать неизвестный тренд времени существующим в модели, установите свойство Trend на вектор 3 на 1 значений NaN с помощью записи через точку.

Mdl.Trend = nan(3,1)
Mdl = 
  varm with properties:

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

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

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

Параметры модели

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

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

Lags

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

AR

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

Trend

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

Beta

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

Covariance

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

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

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

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

yt=[0.0500.05]+[0.5000.10.10.300.20.3]yt1+εt.

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

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

Объекты модели без значений параметров

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

Этот пример показывает, как задать модель в Объектах модели с Известными Параметрами, но без явных параметров.

Mdl = varm(3,1)
Mdl = 
  varm with properties:

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

Объекты модели с выбранными значениями параметров

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

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

c = [.05; 0; -.05];
ar = {diag(nan(3,1))};
Mdl = varm('Constant',c,'AR',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]
Mdl.AR{:}
ans = 3×3

   NaN     0     0
     0   NaN     0
     0     0   NaN

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

После того, как вы настроите объект модели, можно исследовать его несколькими способами:

  • Введите Mdl в командной строке MATLAB®, где Mdl является именем образцовой структуры.

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

  • Введите Mdl.PropertyName в командной строке MATLAB, где Mdl является именем объекта модели, и PropertyName является именем свойства, которое вы хотите исследовать или повторно присвоить.

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

Mdl.PropertyValue = value;

Этот синтаксис изменяет только части PropertyValue Mdl.

Определение соответствующего количества задержек

Существует две функции Econometrics Toolbox, которые могут помочь вам определить соответствующее количество задержек для ваших моделей:

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

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

Пример: Используя тест отношения правдоподобия, чтобы вычислить минимальную необходимую задержку

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

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

  • Получите loglikelihood (logL) модели как третий вывод estimate:

    [EstMdl,EstSE,logL,E] = estimate(...)
  • Получите количество активных параметров в модели (numParameters) от поля NumEstimatedParameters в выходной структуре summarize:

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

Например, предположите, что у вас есть четыре подобранных модели с переменными структурами задержки. Модели имеют loglikelihoods logL1, logL2, logL3 и logL4, и активный параметр считает n1p, n2p, n3p и n4p. Предположим, что модель 4 имеет наибольшее число задержек. Выполните тесты отношения правдоподобия моделей 1, 2, и 3 против модели 4, можно следующим образом:

reject1 = lratiotest(logL4,logL1,n4p - n1p)
reject2 = lratiotest(logL4,logL2,n4p - n2p)
reject3 = lratiotest(logL4,logL3,n4p - n3p)

Если reject1 = 1, вы отклоняете модель 1 в пользу модели 4, и так же для моделей 2 и 3. Если какая-либо из моделей имеет rejectI = 0, у вас есть индикация, что можно использовать меньше задержек, чем в модели 4.

Пример: Используя информационный критерий Akaike, чтобы вычислить минимальную необходимую задержку

Можно получить AIC и статистику подгонки BIC два пути:

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

    • Оцените модель с помощью estimate:

      EstMdl = estimate(...);
    • Получите AIC и BIC предполагаемой модели от полей AIC и BIC в выходной структуре summarize:

      results = summarize(EstMdl);
      aic = results.AIC;
      bic = results.BIC;
  • Используя aicbic. aicbic требует входных параметров loglikelihood модели и количества активных параметров в модели. aicbic также принимает векторы loglikelihoods и векторы активных параметров, который дает возможность сравнивать подгонки многоуровневой модели.

Нижние значения этих информационных критериев указывают на лучшие подгонки к данным.

  • Получите loglikelihood (logL) модели как третий вывод estimate:

    [EstMdl,EstSE,logL,E] = estimate(...)
  • Получите количество активных параметров в модели (numParameters) от поля NumEstimatedParameters в выходной структуре summarize:

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

Например, предположите, что у вас есть четыре подобранных модели с переменными структурами задержки. Модели имеют loglikelihoods logL1, logL2, logL3 и logL4, и активный параметр считает n1p, n2p, n3p и n4p. Вычислите критерии информации о Akaike можно следующим образом:

AIC = aicbic([logL1 logL2 logL3 logL4],[n1p n2p n3p n4p])

Самая подходящая модель имеет самое низкое значение критерия информации о Akaike.

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

Объекты

Функции

Похожие темы