Создайте вектор коррекции векторной ошибки (VEC)
vecm
функция возвращает vecm
объект, задающий функциональную форму и сохраняющий значения параметров модели (p - 1) -упорядоченной многомерной векторной коррекции ошибок (VEC ((p - 1)).
Ключевые компоненты vecm
объект включают количество временных рядов (response-variable dimensionality), количество коинтегрирующих отношений среди переменных отклика (cointegrating rank) и степень многомерного авторегрессионного полинома, составленного из первых различий ответного ряда (short-run polynomial), который является p - 1. То есть p - 1 является максимальной задержкой с ненулевой матрицей коэффициентов, и p является порядком представления модели векторной авторегрессии (VAR) модели VEC. Другие компоненты модели включают регрессионный компонент для связи тех же переменных экзогенного предиктора с каждой последовательностью откликов и терминами постоянного и временного тренда.
Другим важным компонентом модели VEC является ее Johansen form, потому что она диктует, как MATLAB® включает детерминированные членов в модели. Эта спецификация имеет последствия для процедуры оценки и допустимых ограничений равенства. Для получения дополнительной информации см. Johansen Form и [2].
Учитывая размерность переменной отклика, коинтегрирующий ранг и короткую полиномиальную степень, все матрицы коэффициентов и параметры инновационного распределения неизвестны и оцениваемы, если вы не задаете их значения с помощью синтаксиса аргумента пары "имя-значение". Чтобы выбрать, какая форма Йохансена подходит для ваших данных, затем оцените модель, содержащую все или частично неизвестные значения параметров, учитывая данные, используйте estimate
. Работа с предполагаемым или полностью заданным vecm
объект модели, передайте его в функцию объекта.
создает VEC Mdl
= vecm(numseries
,rank
,numlags
)(numlags
) модель, состоящая из numseries
временные ряды, содержащие rank
коинтегрирующие отношения. Максимальная ненулевая задержка в коротком полиноме numlags
. Все лаги и термин исправления ошибок имеют numseries
-by- numseries
матрицы коэффициентов, составленные из NaN
значения.
Этот краткий синтаксис позволяет легко создавать шаблон модели, в котором вы явным образом задаете размерности модели. Шаблон модели подходит для неограниченной оценки параметра, то есть оценки без каких-либо ограничений равенства параметров. После создания модели можно изменить значения свойств с помощью записи через точку.
устанавливает свойства или дополнительные опции, используя аргументы пары "имя-значение". Заключайте каждое имя в кавычки. Для примера, Mdl
= vecm(Name,Value
)'Lags',[1 4],'ShortRun',ShortRun
задает две краткосрочные матрицы коэффициентов в ShortRun
при лагах 1
и 4
.
Этот синтаксис longhand позволяет создавать более гибкие модели. Однако vecm
должна быть в состоянии вывести количество серий (NumSeries
) и коинтеграционный ранг (Rank
) из заданных аргументов пары "имя-значение". Аргументы пары "имя-значение" и значения свойств, которые соответствуют количеству временных рядов и рангу коинтеграции, должны быть согласованы друг с другом.
Синтаксис стенограммы предоставляет вам простой способ создать шаблоны модели, которые подходят для неограниченной оценки параметра. Для примера, чтобы создать модель VEC (2), состоящую из трех рядов ответов, содержащих одно коинтегрирующее отношение и неизвестные значения параметров, введите:
Mdl = vecm(3,1,2);
numseries
- Количество временных рядов m1
(по умолчанию) | положительное целое числоКоличество m временных рядов, заданное как положительное целое число. numseries
задает размерность многомерной переменной отклика yt и инновационных εt.
numseries
устанавливает NumSeries
свойство.
Типы данных: double
rank
- Число коинтегрирующих отношенийКоличество коинтегрирующих отношений, заданное как неотрицательное целое число. Матрицы корректировки и коинтеграции в модели имеют rank
линейно независимые столбцы и являются numseries
-by- rank
матрицы, состоящие из NaN
значения.
Типы данных: double
numlags
- Количество первых различий в ответахКоличество первых различий ответов, включаемых в краткосрочный полином модели VEC (p-1), заданное в виде неотрицательного целого числа. То есть numlags
= p – 1. Следовательно, numlags
задает количество краткосрочных терминов, сопоставленных с соответствующей моделью VAR (p).
Все лаги имеют numseries
-by- numseries
краткосрочные матрицы коэффициентов, состоящие из NaN
значения.
Типы данных: double
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
Синтаксис longhand позволяет вам создать модели, в которых известны некоторые или все коэффициенты. Во время оценки, estimate
накладывает ограничения равенства на любые известные параметры. Укажите достаточное количество информации для vecm
для вывода количества серий отклика и ранга коинтеграции.
'Adjustment',nan(3,2),'Lags',[4 8]
задает трехмерную модель VEC (8) с двумя отношениями коинтеграции и ненулевыми матрицами коротких коэффициентов при лагах 4
и 8
.'Lags'
- Короткие полиномиальные лаги1:(P-1)
(по умолчанию) | числовой вектор уникальных положительных целых чиселКраткосрочные полиномиальные лаги, заданные как разделенная разделенными запятой парами, состоящая из 'Lags'
и числовой вектор, содержащий самое большее P
- 1 элемент уникальных положительных целых чисел.
Матричный ShortRun
- коэффициент задержки {j
}Lags
.(j
)
Пример: 'Lags',[1 4]
Типы данных: double
Можно задать значения свойств записи, когда вы создаете объект модели с помощью синтаксиса аргумента пары "имя-значение" или после того, как вы создаете объект модели с помощью записи через точку. Для примера, чтобы создать модель VEC (1) в H1 форме Йохансена, подходящей для симуляции и состоящей из двух рядов ответов, которые оценивают коинтеграцию как один и не имеют общего временного срока тренда, введите:
Mdl = vecm('Constant',[0; 0.01],'Adjustment',[-0.1; 0.15],... 'Cointegration',[1; -4],'ShortRun',{[0.3 -0.15 ; 0.1 -0.3]},... 'Covariance',eye(2)); Mdl.Trend = 0;
NumSeries
- Количество временных рядов mЭто свойство доступно только для чтения.
Количество m временных рядов, заданное как положительное целое число. NumSeries
задает размерность многомерной переменной отклика yt и инновационных εt.
Типы данных: double
Rank
- Число коинтегрирующих отношенийЭто свойство доступно только для чтения.
Количество коинтегрирующих отношений, заданное как неотрицательное целое число. Матрицы корректировки и коинтеграции в модели имеют Rank
линейно независимые столбцы и являются NumSeries
-by- Rank
матрицы.
Типы данных: double
P
- Соответствующий порядок модели VARЭто свойство доступно только для чтения.
Соответствующий порядок модели VAR, заданный как неотрицательное целое число. P
- 1 является максимальной задержкой в коротком полиноме, который имеет ненулевую матрицу коэффициентов. Лаги в краткосрочном полиноме, которые имеют степень меньше P
- 1 может иметь матрицы коэффициентов, состоящие полностью из нулей.
P
задает количество предварительных наблюдений, необходимых для инициализации модели.
Типы данных: double
Description
- Описание моделиОписание модели, заданное как строковый скаляр или вектор символов. vecm
сохраняет значение как строковый скаляр. Значение по умолчанию описывает параметрическую форму модели, например
"2-Dimensional Rank = 1 VEC(1) Model"
.
Пример: 'Description','Model 1'
Типы данных: string
| char
SeriesNames
- Имена рядов ответовИмена рядов ответов, заданные как NumSeries
длина строки вектор. Значение по умолчанию является ['Y1' 'Y2'... '
.Y <reservedrangesplaceholder0>
']
Пример: 'SeriesNames',{'CPI' 'Unemployment'}
Типы данных: string
Constant
- Общая модель константыNaN(NumSeries,1)
(по умолчанию) | числовой векторОбщая константа модели (c), заданная как NumSeries
-by-1 числовой вектор.
Значение Constant
, и является ли estimate
поддерживает ограничения равенства на нем во время оценки, зависят от формы Йохансена модели VEC.
Пример: 'Constant',[1; 2]
Типы данных: double
Trend
- Общий линейный временной трендnan(NumSeries,1)
(по умолчанию) | числовой векторОбщий линейный временной тренд (d), заданный как NumSeries
-by-1 числовой вектор.
Значение Trend
, и является ли estimate
поддерживает ограничения равенства на нем во время оценки, зависят от формы Йохансена модели VEC.
Пример: 'Trend',[0.1; 0.2]
Типы данных: double
Adjustment
- Скорости регулировки коинтеграцииNaN(NumSeries,Rank)
(по умолчанию) | числовую матрицуСкорости регулировки коинтеграции (A), заданные как NumSeries
-by- Rank
числовая матрица.
Если вы задаете матрицу известных значений, то все столбцы должны быть линейно независимыми (то есть Adjustment
должна быть матрицей полного ранга столбцов).
Для оценки можно наложить ограничения равенства на скорости корректировки коинтеграции путем предоставления матрицы, состоящей полностью из числовых значений или смеси числовых и отсутствующих (NaN
) значения.
Если Rank
= 0
, затем Adjustment
является пустым NumSeries
-by- 0
вектор.
Для получения дополнительной информации об указании Adjustment
, см. Алгоритмы.
Пример: 'Adjustment',NaN(2,1)
Типы данных: double
Cointegration
- Матрица коинтеграцииNaN(NumSeries,Rank)
(по умолчанию) | числовую матрицуМатрица коинтеграции (B), заданная как NumSeries
-by- Rank
числовая матрица.
Если вы задаете матрицу известных значений, то все столбцы должны быть линейно независимыми (то есть Cointegration
должна быть матрицей полного ранга столбцов).
Cointegration
не может содержать смесь отсутствующих (NaN
) значения и числовые значения. Поддерживаемые ограничения равенства для матрицы коинтеграции во время оценки зависят от формы Йохансена модели VEC.
Если Rank
= 0
, затем Cointegration
является пустым NumSeries
-by- 0
вектор.
Для получения дополнительной информации об указании Cointegration
, см. Алгоритмы.
Пример: 'Cointegration',NaN(2,1)
Типы данных: double
Impact
- Матрица влиянияВлияние, или long-run level, матрица (Π), заданная как NumSeries
-by- NumSeries
числовая матрица. Ранг Impact
должен быть Rank
.
Для оценки полноценных моделей (Rank
= NumSeries
), можно наложить ограничения равенства на матрицу влияния путем предоставления матрицы, содержащей смесь числовых и отсутствующих значений (NaN
).
Если 1
≤ Rank
≤ NumSeries
– 1
, затем значение по умолчанию Adjustment*Cointegration'
.
Если Rank
= 0, затем Impact
является матрицей нулей. Следовательно, модель не имеет термина исправления ошибок.
Для получения дополнительной информации об указании Impact
, см. Алгоритмы.
Пример: 'Impact',[0.5 0.25 0; 0.3 0.15 0; 0 0 0.9]
Типы данных: double
CointegrationConstant
- константа в коинтеграционных отношенияхNaN(Rank,1)
(по умолчанию) | числовой векторКонстанта (точки пересечения) в коинтегрирующих отношениях (c 0), заданная как Rank
-by- 1
числовой вектор. Можно задать CointegrationConstant
только при помощи записи через точку после создания модели.
CointegrationConstant
не может содержать смесь отсутствующих (NaN
) значения и числовые значения. Поддерживаемые ограничения равенства для постоянного вектора коинтеграции во время оценки зависят от формы Йохансена модели VEC.
Если Rank
= 0
, затем CointegrationConstant
является 0
-by- 1
нулевой вектор.
Пример: Mdl.CointegrationConstant = [1; 0]
Типы данных: double
CointegrationTrend
- Временный тренд в коинтеграционных отношенияхNaN(Rank,1)
(по умолчанию) | числовой векторВременной тренд в коинтегрирующих отношениях (d 0), заданный как Rank
-by- 1
числовой вектор. Можно задать CointegrationTrend
только при помощи записи через точку после создания модели.
CointegrationTrend
не может содержать смесь отсутствующих (NaN
) значения и числовые значения. Поддерживаемые ограничения равенства для вектора линейного тренда коинтеграции во время оценки зависят от формы Йохансена модели VEC.
Если Rank
= 0, затем CointegrationTrend
является 0
-by- 1
нулевой вектор.
Пример: Mdl.CointegrationTrend = [0; 0.5]
Типы данных: double
ShortRun
- Матрицы коротких коэффициентовКраткосрочные матрицы коэффициентов, сопоставленные с запаздывающими различиями откликов, заданы как вектор камеры NumSeries
-by- NumSeries
числовые матрицы.
Задайте знаки коэффициентов, соответствующие этим коэффициентам в модели VEC, выраженным в обозначении разностного уравнения. Свойство P
является numel(ShortRun) + 1
.
Если вы задаете 'Lags'
аргумент пары "имя-значение" в Lags
, применяются следующие условия.
Длины ShortRun
и Lags
должно быть равным.
ShortRun
- матрица коэффициентов задержки {j
}Lags
.(j
)
По умолчанию ShortRun
является numel(Lags)
-by-1 вектор камеры матриц, составленный из NaN
значения.
В противном случае применяются следующие условия.
ShortRun
- матрица коэффициентов задержки {j
}j
.
По умолчанию ShortRun
является a (P
- 1) вектор камеры -by-1 из матриц, состоящий из NaN
значения.
MATLAB принимает, что коэффициент текущей дифференцированной характеристики (Δ y t) является матрицей тождеств. Поэтому исключить этот коэффициент из ShortRun
.
Пример: 'ShortRun',{[0.5 -0.1; 0.1 0.2]}
Типы данных: cell
Beta
- Матрица коэффициентов регрессииNumSeries
-by-0 пустая матрица (по умолчанию) | числовая матрицаМатрица коэффициента регрессии, сопоставленная с переменными предиктора, заданная как NumSeries
-by- NumPreds
числовая матрица. NumPreds
- количество переменных предиктора, то есть количество столбцов в данных предиктора.
Бета
содержит коэффициенты регрессии для каждого предиктора в уравнении отклика y (j
,:)j
, т. Бета
содержит коэффициент регрессии в каждом уравнении отклика для xk предиктора. По умолчанию все переменные предиктора находятся в регрессионном компоненте всех уравнений отклика. Можно исключить определенные предикторы из определенных уравнений, задав ограничения равенства 0.(:, k
)
Пример: В модели, которая включает 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
Covariance
- Ковариационная матрица инновацийNaN(NumSeries)
(по умолчанию) | числовая, положительно определенная матрицаИнновационная ковариационная матрица NumSeries
инновации в каждый момент времени t = 1,..., T, заданные как NumSeries
-by- NumSeries
числовая, положительно определенная матрица.
Пример: 'Covariance',eye(2)
Типы данных: double
Примечание
NaN
-значенные элементы в свойствах указывают неизвестные, оценочные параметры. Заданные элементы указывают ограничения равенства на параметрах в оценке модели. Нововведения ковариации матричных Covariance
не может содержать смесь NaN
значения и действительные числа; вы должны полностью указать ковариацию или она должна быть полностью неизвестной (NaN(NumSeries)
).
estimate | Подбор модели коррекции ошибок вектора (VEC) к данным |
fevd | Сгенерируйте векторную модель коррекции ошибок (VEC), прогнозирующую разложение отклонения ошибок (FEVD) |
filter | Фильтруйте нарушения порядка через векторную модель коррекции ошибок (VEC) |
forecast | Прогнозные ответы модели коррекции ошибок вектора (VEC) |
infer | Инновации модели коррекции ошибок вектора вывода (VEC) |
irf | Сгенерируйте вектор модель исправления ошибок (VEC) импульсных характеристик |
simulate | Симуляция Монте-Карло модели вектора исправления ошибок (VEC) |
summarize | Отобразите результаты оценки вектора коррекции ошибок (VEC) |
varm | Преобразуйте модель вектора исправлением ошибок (VEC) в модель векторной авторегрессии (VAR) |
Предположим, что модель VEC с коинтегрирующим рангом 4 и краткосрочным полиномом степени 2 подходит для моделирования поведения семи гипотетических макроэконометрических временных рядов.
Создайте модель VEC (7,4,2) с помощью синтаксиса shorthand.
Mdl = vecm(7,4,2)
Mdl = vecm with properties: Description: "7-Dimensional Rank = 4 VEC(2) Model with Linear Time Trend" SeriesNames: "Y1" "Y2" "Y3" ... and 4 more NumSeries: 7 Rank: 4 P: 3 Constant: [7×1 vector of NaNs] Adjustment: [7×4 matrix of NaNs] Cointegration: [7×4 matrix of NaNs] Impact: [7×7 matrix of NaNs] CointegrationConstant: [4×1 vector of NaNs] CointegrationTrend: [4×1 vector of NaNs] ShortRun: {7×7 matrices of NaNs} at lags [1 2] Trend: [7×1 vector of NaNs] Beta: [7×0 matrix] Covariance: [7×7 matrix of NaNs]
Mdl
является vecm
объект модели, который служит шаблоном для оценки параметра. MATLAB ® рассматривает NaN
значения как неизвестные значения параметров, которые будут оценены. Для примера, Adjustment
свойство является матрицей 7 на 4 NaN
значения. Поэтому скорости регулировки являются параметрами активной модели, которые должны быть оценены.
По умолчанию MATLAB ® включает в модель общие и совместные условия линейного временного тренда. Можно создать модель VEC в форме Йохансена H1 удалив временные условия тренда, то есть установив Trend
свойство к 0
использование записи через точку.
Mdl.Trend = 0
Mdl = vecm with properties: Description: "7-Dimensional Rank = 4 VEC(2) Model" SeriesNames: "Y1" "Y2" "Y3" ... and 4 more NumSeries: 7 Rank: 4 P: 3 Constant: [7×1 vector of NaNs] Adjustment: [7×4 matrix of NaNs] Cointegration: [7×4 matrix of NaNs] Impact: [7×7 matrix of NaNs] CointegrationConstant: [4×1 vector of NaNs] CointegrationTrend: [4×1 vector of NaNs] ShortRun: {7×7 matrices of NaNs} at lags [1 2] Trend: [7×1 vector of zeros] Beta: [7×0 matrix] Covariance: [7×7 matrix of NaNs]
MATLAB ® расширяет Trend
к соответствующей длине, 7 на 1 нулевом векторе.
Рассмотрим эту модель VEC (1) для трех гипотетических рядов отклика.
Нововведения являются многомерными Гауссовыми со средним значением 0 и ковариационной матрицей
Создайте переменные для значений параметров.
Adjustment = [-0.3 0.3; -0.2 0.1; -1 0]; Cointegration = [0.1 -0.7; -0.2 0.5; 0.2 0.2]; ShortRun = {[0. 0.1 0.2; 0.2 -0.2 0; 0.7 -0.2 0.3]}; Constant = [-1; -3; -30]; Trend = [0; 0; 0]; Covariance = [1.3 0.4 1.6; 0.4 0.6 0.7; 1.6 0.7 5];
Создайте vecm
объект модели, представляющий модель VEC (1) с помощью соответствующих аргументов пары "имя-значение ".
Mdl = vecm('Adjustment',Adjustment,'Cointegration',Cointegration,... 'Constant',Constant,'ShortRun',ShortRun,'Trend',Trend,... 'Covariance',Covariance)
Mdl = vecm with properties: Description: "3-Dimensional Rank = 2 VEC(1) Model" SeriesNames: "Y1" "Y2" "Y3" NumSeries: 3 Rank: 2 P: 2 Constant: [-1 -3 -30]' Adjustment: [3×2 matrix] Cointegration: [3×2 matrix] Impact: [3×3 matrix] CointegrationConstant: [2×1 vector of NaNs] CointegrationTrend: [2×1 vector of NaNs] ShortRun: {3×3 matrix} at lag [1] Trend: [3×1 vector of zeros] Beta: [3×0 matrix] Covariance: [3×3 matrix]
Mdl
фактически является полностью заданным vecm
объект модели. То есть коинтеграция константа и линейный тренд неизвестны. Однако они не нужны для симуляции наблюдений или прогнозирования, учитывая, что известны общие параметры константы и тренда.
По умолчанию vecm
приписывает короткий коэффициент первой задержке в коротком полиноме. Рассмотрим другую модель VEC, которая атрибутирует матрицу кратковременных коэффициентов ShortRun
для четвертого члена с задержкой задает матрицу нулей для первого коэффициента с задержкой и рассматривает все остальные как равные Mdl
. Создайте эту модель VEC (4).
Mdl.ShortRun(4) = ShortRun; Mdl.ShortRun(1) = {0}
Mdl = vecm with properties: Description: "3-Dimensional Rank = 2 VEC(4) Model" SeriesNames: "Y1" "Y2" "Y3" NumSeries: 3 Rank: 2 P: 5 Constant: [-1 -3 -30]' Adjustment: [3×2 matrix] Cointegration: [3×2 matrix] Impact: [3×3 matrix] CointegrationConstant: [2×1 vector of NaNs] CointegrationTrend: [2×1 vector of NaNs] ShortRun: {3×3 matrix} at lag [4] Trend: [3×1 vector of zeros] Beta: [3×0 matrix] Covariance: [3×3 matrix]
Также можно создать другой объект модели с помощью vecm
и тот же синтаксис, что и для Mdl
, но дополнительно задайте 'Lags',4
.
Рассмотрите модель VEC для следующих семи макроэкономических рядов, а затем подгоните модель к данным.
Валовой внутренний продукт (ВВП)
Неявный дефлятор цен ВВП
Выплаченная компенсация работникам
Нерезультатное рабочее время всех лиц
Эффективная ставка федеральных средств
Расходы на личное потребление
Валовые частные внутренние инвестиции
Предположим, что подходят коинтегрирующий ранг 4 и один краткосрочный срок, то есть рассмотрим модель VEC (1).
Загрузите Data_USEconVECModel
набор данных.
load Data_USEconVECModel
Для получения дополнительной информации о наборе данных и переменных введите Description
в командной строке.
Определите, нужно ли предварительно обработать данные, построив график ряда на отдельных графиках.
figure; subplot(2,2,1) plot(FRED.Time,FRED.GDP); title('Gross Domestic Product'); ylabel('Index'); xlabel('Date'); subplot(2,2,2) plot(FRED.Time,FRED.GDPDEF); title('GDP Deflator'); ylabel('Index'); xlabel('Date'); subplot(2,2,3) plot(FRED.Time,FRED.COE); title('Paid Compensation of Employees'); ylabel('Billions of $'); xlabel('Date'); subplot(2,2,4) plot(FRED.Time,FRED.HOANBS); title('Nonfarm Business Sector Hours'); ylabel('Index'); xlabel('Date');
figure; subplot(2,2,1) plot(FRED.Time,FRED.FEDFUNDS); title('Federal Funds Rate'); ylabel('Percent'); xlabel('Date'); subplot(2,2,2) plot(FRED.Time,FRED.PCEC); title('Consumption Expenditures'); ylabel('Billions of $'); xlabel('Date'); subplot(2,2,3) plot(FRED.Time,FRED.GPDI); title('Gross Private Domestic Investment'); ylabel('Billions of $'); xlabel('Date');
Стабилизируйте все ряды, кроме ставки федеральных фондов, используя преобразование журнала. Масштабируйте полученную серию на 100 так, чтобы все серии находились в одной шкале.
FRED.GDP = 100*log(FRED.GDP); FRED.GDPDEF = 100*log(FRED.GDPDEF); FRED.COE = 100*log(FRED.COE); FRED.HOANBS = 100*log(FRED.HOANBS); FRED.PCEC = 100*log(FRED.PCEC); FRED.GPDI = 100*log(FRED.GPDI);
Создайте модель VEC (1) с помощью синтаксиса shorthand. Задайте имена переменных.
Mdl = vecm(7,4,1); Mdl.SeriesNames = FRED.Properties.VariableNames
Mdl = vecm with properties: Description: "7-Dimensional Rank = 4 VEC(1) Model with Linear Time Trend" SeriesNames: "GDP" "GDPDEF" "COE" ... and 4 more NumSeries: 7 Rank: 4 P: 2 Constant: [7×1 vector of NaNs] Adjustment: [7×4 matrix of NaNs] Cointegration: [7×4 matrix of NaNs] Impact: [7×7 matrix of NaNs] CointegrationConstant: [4×1 vector of NaNs] CointegrationTrend: [4×1 vector of NaNs] ShortRun: {7×7 matrix of NaNs} at lag [1] Trend: [7×1 vector of NaNs] Beta: [7×0 matrix] Covariance: [7×7 matrix of NaNs]
Mdl
является vecm
объект модели. Все свойства, содержащие NaN
значения соответствуют параметрам, которые должны быть оценены по данным.
Оцените модель, используя весь набор данных и опции по умолчанию.
EstMdl = estimate(Mdl,FRED.Variables)
EstMdl = vecm with properties: Description: "7-Dimensional Rank = 4 VEC(1) Model" SeriesNames: "GDP" "GDPDEF" "COE" ... and 4 more NumSeries: 7 Rank: 4 P: 2 Constant: [14.1329 8.77841 -7.20359 ... and 4 more]' Adjustment: [7×4 matrix] Cointegration: [7×4 matrix] Impact: [7×7 matrix] CointegrationConstant: [-28.6082 109.555 -77.0912 ... and 1 more]' CointegrationTrend: [4×1 vector of zeros] ShortRun: {7×7 matrix} at lag [1] Trend: [7×1 vector of zeros] Beta: [7×0 matrix] Covariance: [7×7 matrix]
EstMdl
является расчетным vecm
объект модели. Он полностью задан, потому что все параметры имеют известные значения. По умолчанию estimate
накладывает ограничения на H1 форму модели Johansen VEC путем удаления коинтегрирующего тренда и линейных терминов тренда из модели. Исключение параметра из оценки эквивалентно наложению ограничений равенства на нуль.
Отобразите краткие сводные данные из оценки.
results = summarize(EstMdl)
results = struct with fields:
Description: "7-Dimensional Rank = 4 VEC(1) Model"
Model: "H1"
SampleSize: 238
NumEstimatedParameters: 112
LogLikelihood: -1.4939e+03
AIC: 3.2118e+03
BIC: 3.6007e+03
Table: [133x4 table]
Covariance: [7x7 double]
Correlation: [7x7 double]
The Table
область results
- таблица оценок параметров и соответствующей статистики.
Этот пример следует из оценки модели VEC.
Создайте и оцените модель VEC (1). Рассматривайте последние десять периодов как горизонт прогноза.
load Data_USEconVECModel
FRED.GDP = 100*log(FRED.GDP);
FRED.GDPDEF = 100*log(FRED.GDPDEF);
FRED.COE = 100*log(FRED.COE);
FRED.HOANBS = 100*log(FRED.HOANBS);
FRED.PCEC = 100*log(FRED.PCEC);
FRED.GPDI = 100*log(FRED.GPDI);
Mdl = vecm(7,4,1)
Mdl = vecm with properties: Description: "7-Dimensional Rank = 4 VEC(1) Model with Linear Time Trend" SeriesNames: "Y1" "Y2" "Y3" ... and 4 more NumSeries: 7 Rank: 4 P: 2 Constant: [7×1 vector of NaNs] Adjustment: [7×4 matrix of NaNs] Cointegration: [7×4 matrix of NaNs] Impact: [7×7 matrix of NaNs] CointegrationConstant: [4×1 vector of NaNs] CointegrationTrend: [4×1 vector of NaNs] ShortRun: {7×7 matrix of NaNs} at lag [1] Trend: [7×1 vector of NaNs] Beta: [7×0 matrix] Covariance: [7×7 matrix of NaNs]
Y = FRED{1:(end - 10),:}; EstMdl = estimate(Mdl,Y)
EstMdl = vecm with properties: Description: "7-Dimensional Rank = 4 VEC(1) Model" SeriesNames: "Y1" "Y2" "Y3" ... and 4 more NumSeries: 7 Rank: 4 P: 2 Constant: [14.5023 8.46791 -7.08266 ... and 4 more]' Adjustment: [7×4 matrix] Cointegration: [7×4 matrix] Impact: [7×7 matrix] CointegrationConstant: [-32.8433 -101.126 -84.2373 ... and 1 more]' CointegrationTrend: [4×1 vector of zeros] ShortRun: {7×7 matrix} at lag [1] Trend: [7×1 vector of zeros] Beta: [7×0 matrix] Covariance: [7×7 matrix]
Прогнозируйте 10 ответов с использованием оценочной модели и данных в выборке в качестве предварительных наблюдений.
YF = forecast(EstMdl,10,Y);
На отдельных графиках постройте часть GDP
и GPDI
последовательность с их прогнозируемыми значениями.
figure; plot(FRED.Time(end - 50:end),FRED.GDP(end - 50:end)); hold on plot(FRED.Time((end - 9):end),YF(:,1)) h = gca; fill(FRED.Time([end - 9 end end end - 9]),h.YLim([1,1,2,2]),'k',... 'FaceAlpha',0.1,'EdgeColor','none'); legend('True','Forecasted','Location','NW') title('Quarterly Scaled GDP: 2004 - 2016'); ylabel('Billions of $ (scaled)'); xlabel('Year'); hold off
figure; plot(FRED.Time(end - 50:end),FRED.GPDI(end - 50:end)); hold on plot(FRED.Time((end - 9):end),YF(:,7)) h = gca; fill(FRED.Time([end - 9 end end end - 9]),h.YLim([1,1,2,2]),'k',... 'FaceAlpha',0.1,'EdgeColor','none'); legend('True','Forecasted','Location','NW') title('Quarterly Scaled GPDI: 2004 - 2016'); ylabel('Billions of $ (scaled)'); xlabel('Year'); hold off
A vector error-correction (VEC) model является многомерной стохастической моделью временных рядов, состоящей из системы m = numseries
уравнения m разных, дифференцированных переменных отклика. Уравнения в системе могут включать error-correction term, которая является линейной функцией от откликов в уровнях, используемых для стабилизации системы. cointegrating rank
r - это количество cointegrating relations, существующих в системе.
Каждое уравнение отклика может включать авторегрессивный полином, состоящий из первых различий ряда откликов (short-run polynomial степени p - 1), константы, временного тренда, переменных экзогенного предиктора и постоянного и временного тренда в термине коррекции ошибок.
Модель VEC (p-1) в difference-equation notation и в reduced form может быть выражена двумя способами:
Это уравнение является component form модели VEC, где скорости корректировки коинтеграции и матрица коинтеграции явны, тогда как матрица влияния подразумевается.
cointegrating отношения - <reservedrangesplaceholder12> <reservedrangesplaceholder11> <reservedrangesplaceholder10> - 1 + <reservedrangesplaceholder9> 0 + <reservedrangesplaceholder8> 0 <reservedrangesplaceholder7> и срок исправления ошибок A (B' <reservedrangesplaceholder4> <reservedrangesplaceholder3> - 1 + <reservedrangesplaceholder2> 0 + <reservedrangesplaceholder1> 0 <reservedrangesplaceholder0>).
Это уравнение является impact form модели VEC, где матрица влияния явна, в то время как скорости корректировки коинтеграции и матрица коинтеграции подразумеваются.
В уравнениях:
yt является вектором m -by-1 значений, соответствующих переменным m отклика в то t время, где t = 1,..., T.
Β yt = yt - y t - 1. Структурный коэффициент является матрицей тождеств.
r - количество коинтегрирующих отношений и, в целом, 0 < r < m.
A является m -by - r матрицей регулировочных скоростей.
B является m -by r матрицей коинтеграции.
Β является m -by - m ударной матрицей с рангом r.
c 0 является вектором r -by-1 констант (точек пересечения) в коинтегрирующих отношениях.
d 0 является вектором r -by-1 линейных временных трендов в коинтегрирующих отношениях.
c 1 является вектором констант m -by-1 (deterministic linear trends in yt).
d 1 является вектором m -by-1 линейных значений временного тренда (deterministic quadratic trends в yt).
c = A c 0 + c 1 и является полной константой.
d = A d 0 + d 1 и является общим коэффициентом временного тренда.
Φ <reservedrangesplaceholder5> m m матрицей краткосрочных коэффициентов, где j = 1..., p - 1 и Φ <reservedrangesplaceholder0> - 1 не является матрицей, содержащей только нули.
xt является вектором k -by-1 значений, соответствующих k переменным экзогенного предиктора.
β является m -by - k матрицей коэффициентов регрессии.
εt является вектором m -by-1 случайных Гауссовых инноваций, каждый со средним значением 0 и коллективно m -by m ковариационной матрицей Для <reservedrangesplaceholder3> ≠ <reservedrangesplaceholder2>, εt и εs независимы.
Конденсированное и в обозначении оператора задержки, система является
где , I m m матрицей тождеств и <reservedrangesplaceholder3> <reservedrangesplaceholder2> = <reservedrangesplaceholder1> <reservedrangesplaceholder0> - 1.
Если m = r, то модель VEC является стабильной моделью VAR (p) на уровнях откликов. Если r = 0, то термин исправления ошибок является матрицей нулей, а модель VEC (p - 1) является стабильной моделью VAR (p - 1) в первых различиях ответов.
Johansen forms модели VEC различаются относительно наличия детерминированных членов. Как подробно описано в [2], процедура оценки отличается среди форм. Следовательно, допустимые ограничения равенства для детерминированных членов во время оценки различаются между формами. Для получения дополнительной информации смотрите Роль детерминированных терминов.
В этой таблице описываются пять форм Йохансена и поддерживаются ограничения равенства.
Форма | Срок исправления ошибок | Детерминированные коэффициенты | Ограничения равенства |
---|---|---|---|
H2 | AB´ <reservedrangesplaceholder1> <reservedrangesplaceholder0> − 1 | c = 0 (константа). d = 0 (тренд). c 0 = 0 (CointegrationConstant). d 0 = 0 (CointegrationTrend). | Можно полностью задать B. Все детерминированные коэффициенты равны нулю. |
H1* | <reservedrangesplaceholder4>(<reservedrangesplaceholder3>´<reservedrangesplaceholder2><reservedrangesplaceholder1>−1+<reservedrangesplaceholder0>0) | c = <reservedrangesplaceholder1> <reservedrangesplaceholder0> 0. d = 0. <reservedrangesplaceholder0> 0 = 0. | Если вы полностью задаете B или c 0, то необходимо полностью задать другое. MATLAB выводит значение c из c 0 и A . Все детерминированные тренды равны нулю. |
H1 | A (B´ <reservedrangesplaceholder3> <reservedrangesplaceholder2> −1 + <reservedrangesplaceholder1> 0) + <reservedrangesplaceholder0> 1 | c = <reservedrangesplaceholder2> <reservedrangesplaceholder1> 0 + <reservedrangesplaceholder0> 1. d = 0. <reservedrangesplaceholder0> 0 = 0. | Можно полностью задать B. Можно задать смесь MATLAB выводит значение c 0 из c и A. Все детерминированные тренды равны нулю. |
H * | A (B´ <reservedrangesplaceholder5> <reservedrangesplaceholder4> −1 + <reservedrangesplaceholder3> 0 + <reservedrangesplaceholder2> 0 <reservedrangesplaceholder1>) + <reservedrangesplaceholder0> 1 | c = <reservedrangesplaceholder2> <reservedrangesplaceholder1> 0 + <reservedrangesplaceholder0> 1. d = <reservedrangesplaceholder1> <reservedrangesplaceholder0> 0. | Если вы полностью задаете B или d 0, то необходимо полностью задать другое. Можно задать смесь MATLAB выводит значение c 0 из c и A. MATLAB выводит значение d из A и d 0. |
H | <reservedrangesplaceholder9>(<reservedrangesplaceholder8>´<reservedrangesplaceholder7><reservedrangesplaceholder6>−1+<reservedrangesplaceholder5>0+<reservedrangesplaceholder4>0<reservedrangesplaceholder3>)+<reservedrangesplaceholder2>1+<reservedrangesplaceholder1>1<reservedrangesplaceholder0> | c = <reservedrangesplaceholder2> <reservedrangesplaceholder1> 0 + <reservedrangesplaceholder0> 1. d = A. <reservedrangesplaceholder1> 0 + <reservedrangesplaceholder0> 1. | Можно полностью задать B. Можно задать смесь MATLAB выводит значения c 0 и d 0 из c, d и A. |
Модели VEC могут принимать одну из двух форм: component form или impact form.
Если вы создаете vecm
моделировать объект с помощью синтаксиса shorthand, а затем присвоить значение хотя бы одному из этих свойства- Adjustment
, Cointegration
, CointegrationConstant
, или CointegrationTrend
- перед присвоением значения Impact
свойство, затем модель принимает форму компонента.
Если вы создаете vecm
моделировать объект с помощью синтаксиса longhand путем присвоения значения любому из Adjustment
или Cointegration
свойство (или оба), но оставьте Impact
свойство не задано, затем моделируйте форму компонента.
Если 1
≤ Rank
≤ NumSeries
– 1
как и в случае с большинством анализов модели VEC, тогда может быть удобнее работать с моделью в форме компонента, а не в форме влияния.
Свойство Impact доступно только для чтения и зависит от значений Cointegration
и Adjustment
свойства. В частности, Impact
= Adjustment*Cointegration'
.
Во время оценки MATLAB подгоняет модель VEC к данным за два шага. Во-первых, он оценивает коинтегрирующие отношения. Во-вторых, он создает модель VARX из дифференцированных откликов и краткосрочного полинома, включает экзогенный термин для предполагаемых коинтегрирующих отношений, а затем подбирает модель VARX к дифференцированным данным отклика.
Если вы создаете vecm
моделируйте объект с помощью синтаксиса shorthand, а затем присваивайте значение Impact
свойство перед присвоением значения любому из этих свойства- Adjustment
, Cointegration
, CointegrationConstant
, или CointegrationTrend
- модель принимает форму влияния.
Если вы создаете vecm
моделировать объект с помощью синтаксиса longhand путем присвоения значения Impact
свойство, но оставьте либо Adjustment
или Cointegration
свойство (или оба) не задано, тогда модель принимает форму влияния.
Если значение свойства Impact является матрицей полного ранга (Rank
= NumSeries
), тогда может быть удобнее работать с моделью в форме влияния, а не в форме компонента. Соответствующая модель VEC не имеет единичных корней. Поэтому модель является стабильной VAR (P
) модель. Поскольку каждая отдельная переменная отклика стабильна, любая линейная комбинация переменных отклика также стабильна.
Поскольку матричные факторизации не обязательно являются уникальными, значения Cointegration
и Adjustment
свойства неизвестны. Поэтому после прохождения vecm
объект модели в estimate
MATLAB устанавливает Cointegration
свойство для NumSeries
-by- NumSeries
единичная матрица и Adjustment
свойство значению Impact
в расчетном vecm
объект модели.
The Cointegration
и Adjustment
свойства доступны только для чтения и зависят от значения Impact
.
Во время оценки MATLAB подходит модели в один шаг: он подходит к эквивалентному VARX (P
) модель к дифференцированным реакциям и включает y t - 1 как экзогенные предикторы в регрессионном компоненте.
При использовании синтаксиса longhand для создания vecm
объект модели, если вы присвоите значение Impact
свойство и либо Adjustment
или Cointegration
свойство (или оба) одновременно, тогда MATLAB использует ранг коинтеграции Rank
для определения формы vecm
объект модели. В частности, если 1 ≤ Rank
≤ NumSeries
– 1
, тогда объект модели находится в форме компонента. В противном случае объект модели находится в форме влияния.
Если модель полностью задана, то форма vecm
объект модели нерелевантен.
MATLAB не хранит c 1 и δ 1, но вычислить их можно с помощью Adjustment, Constant, CointegrationConstant, Тренда, CointegrationTrend и соответствующей формы Йохансена модели VEC.
[1] Гамильтон, Джеймс Д. Анализ временных рядов. Princeton, NJ: Princeton University Press, 1994.
[2] Йохансен, С. Основанный на вероятностях вывод в коинтегрированных векторных авторегрессивных моделях. Oxford: Oxford University Press, 1995.
[3] Juselius, K. Cointegrated VAR Model. Oxford: Oxford University Press, 2006.
[4] Lütkepohl, H. Новое введение в анализ нескольких временных рядов. Берлин: Спрингер, 2005.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.