Econometrics Toolbox™ имеет класс функций для моделирования многомерных временных рядов с помощью модели VAR. varm
функция создает varm
объект, который представляет модель VAR. varm
свойства задают структуру модели VAR, включая количество ряда ответа (размерность), количество авторегрессивных (AR) задержки и присутствие постоянных или коэффициентов тренда времени в модели.
varm
объект может служить шаблоном модели для оценки, в этом случае необходимо задать, по крайней мере, количество ряда ответа и степень полинома AR. Опционально, можно задать значения для других параметров (коэффициенты или инновационная ковариационная матрица), чтобы протестировать гипотезы или экономическую теорию. estimate
возразите, что функция соответствует незаданным допускающим оценку параметрам модели к заданным данным и возвращает полностью заданный varm
объект. Предоставьте полностью заданную модель к другому varm
возразите функциям для последующего анализа.
Можно создать 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'
|
|
'Lags' | Числовой вектор из авторегрессивных полиномиальных задержек. Самая большая задержка определяет |
'AR' | Вектор ячейки из |
'Trend' |
|
'Beta' |
|
'Covariance' |
|
Можно также создать объект модели с помощью краткого синтаксиса, и затем настроить соответствующие значения свойств (кроме Lags
) использование записи через точку.
Lags
аргумент пары "имя-значение" позволяет вам задавать, какие задержки вы хотите включать. Например, задать AR отстает 1 и 3 без задержки 2, установите 'Lags'
к [1 3]
. Несмотря на то, что этот синтаксис задал только две задержки, p
3
.
Следующий пример показывает, как создать объект модели, когда вы знали параметры. Рассмотрите модель VAR (1)
Независимые воздействия ε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
устанавливает постоянный вектор, все авторегрессивные содействующие матрицы и инновационную ковариационную матрицу к соответственно размерным массивам NaN
s.
Отобразить 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
и допустимые вещественные числа, но инновационная ковариационная матрица должны быть абсолютно неизвестными (состоявший полностью из NaN
s) или полностью известный (положительная определенная матрица).
Этот код показывает, как задать модель в Полностью Заданном Объекте модели, но параметры 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.
в командной строке MATLAB, где PropertyName
имя свойства, которое вы хотите исследовать или повторно присвоить.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. Их соответствующие значения свойств являются соответственно измеренными массивами NaN
s, который указывает, что значения являются неизвестными, но допускающими оценку. Точно так же инновационная ковариационная матрица Covariance
NaN
матрица, таким образом, это является также неизвестным, но допускающим оценку.
По умолчанию, линейный вектор тренда времени Trend
состоит из нулей и матрицы коэффициента регрессии Beta
имеет размерность столбца нуля. Если вы снабжаете внешними данными, когда вы оцениваете Mdl
при помощи estimate
, MATLAB® выводит размерность столбца Beta
из заданных данных, Beta
наборов к матрице
NaN
s, и оценки это. В противном случае 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 модели.
В этом примере показано, как выбрать, какие внешние переменные происходят в компоненте регрессии модели 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
к данным.
Установите коэффициент регрессии на матрицу NaN
s. Затем установите элементы, соответствующие исключенным внешним переменным обнулять.
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-ценные элементы) к данным при применении этих ограничений равенства во время оптимизации:
Цель разработки моделей временных рядов состоит в том, чтобы идентифицировать, что задержка заказывает p, дающий к модели, которая представляет генерирующий данные процесс хорошо и производит надежные прогнозы. Эти функции помогают идентифицировать соответствующий порядок задержки:
lratiotest
выполняет тест отношения правдоподобия, чтобы сравнить технические требования вложенных моделей путем оценки значения ограничений на расширенную модель неограниченными параметрами. В контексте порядок задержки ограниченной модели меньше порядка задержки неограниченной модели.
aicbic
возвращает информационные критерии, такие как Akaike и критерии информации о Bayesian (AIC и BIC, соответственно) данный логарифмическую правдоподобность, активные количества параметра подбиравших моделей кандидата и эффективный объем выборки (требуемый для BIC или нормализации критериев). aicbic
не проводит статистический тест гипотезы. Модель, которая дает к минимальной подходящей статистической величине, имеет лучшую, экономную подгонку среди моделей кандидата.
lratiotest
требует входных параметров логарифмической правдоподобности неограниченной модели, логарифмической правдоподобности ограниченной модели и количества степеней свободы (степень свободы). Степень свободы является различием между активными количествами параметра неограниченных и ограниченных моделей. Порядок задержки ограниченной модели меньше порядка задержки неограниченной модели.
lratiotest
возвращает логическое значение: 1
средние значения отклоняют ограниченную модель в пользу неограниченной модели и 0
средние недостаточные доказательства существуют, чтобы отклонить ограниченную модель.
Провести тест отношения правдоподобия:
Получите логарифмическую правдоподобность ограниченных и неограниченных моделей, когда вы будете соответствовать им к использованию данных estimate
. Логарифмической правдоподобностью является третий выход (logL
).
[EstMdl,EstSE,logL,E] = estimate(...)
Получите активное количество параметра каждой предполагаемой модели (numparams
) от NumEstimatedParameters
поле в структуре output summarize
.
results = summarize(EstMdl); numparams = results.NumEstimatedParameters;
Проведите тест отношения правдоподобия, с 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.
Оцените использование модели estimate
.
EstMdl = estimate(...);
Получите AIC и BIC предполагаемой модели от AIC
и BIC
поля структуры output results
.
results = summarize(EstMdl); aic = results.AIC; bic = results.BIC;
Использование aicbic
, который требует логарифмической правдоподобности модели кандидата, ее активного количества параметра и эффективного объема выборки для BIC. aicbic
также принимает вектор из логарифмической правдоподобности и вектор из соответствующих активных количеств параметра, позволяя вам сравнить подгонки многоуровневой модели с помощью одного вызова функции, и можно опционально нормировать все критерии на объем выборки при помощи 'Normalize'
аргумент пары "имя-значение".
Получите логарифмическую правдоподобность каждой модели кандидата, когда вы будете подбирать каждую модель к использованию данных estimate
. Логарифмической правдоподобностью является третий выход.
[EstMdl,EstSE,logL,E] = estimate(...)
Получите активное количество параметра каждой модели кандидата от 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.