Создайте модель векторной авторегрессии (VAR)
varm
функция возвращает varm
объект, задающий функциональную форму и сохраняющий значения параметров модели p-order, стационарной, многомерной векторной авторегрессии (VAR (p)).
Ключевые компоненты varm
объект включает количество временных рядов (response-variable dimensionality) и порядок многомерного авторегрессионного полинома (p), потому что они полностью определяют структуру модели. Другие компоненты модели включают регрессионный компонент для связи тех же переменных экзогенного предиктора с каждой последовательностью откликов и терминами постоянного и временного тренда. Учитывая размерность и p переменной отклика, все матрицы коэффициентов и параметры распределения инноваций неизвестны и оцениваемы, если вы не задаете их значения.
Чтобы оценить модели, содержащие неизвестные значения параметров, передайте модель и данные estimate
. Работа с предполагаемым или полностью заданным varm
объект модели, передайте его в функцию объекта.
создает модель VAR (0), состоящую из одной серии откликов.Mdl
= varm
создает VAR Mdl
= varm(numseries
,numlags
)(numlags
) модель, состоящая из numseries
серия отклика. Максимальная ненулевая задержка numlags
. Все лаги имеют numseries
-by- numseries
матрицы коэффициентов, составленные из NaN
значения.
Этот краткий синтаксис позволяет легко создавать шаблон модели. Шаблон модели подходит для неограниченной оценки параметра, то есть оценки без ограничений равенства параметров. После создания модели можно изменить значения свойств с помощью записи через точку.
устанавливает свойства или дополнительные опции, используя аргументы пары "имя-значение". Заключайте каждое имя в кавычки. Для примера, Mdl
= varm(Name,Value
)'Lags',[1 4],'AR',AR
задает две матрицы авторегрессионных коэффициентов в AR
при лагах 1
и 4
.
Этот синтаксис longhand позволяет создавать более гибкие модели. varm
выводит количество рядов (NumSeries
) и авторегрессионной полиномиальной степени (P
) из заданных свойств. Поэтому значения свойств, которые соответствуют количеству рядов или авторегрессивной полиномиальной степени, должны быть согласованы друг с другом.
Синтаксис стенограммы предоставляет вам простой способ создать шаблоны модели, которые подходят для неограниченной оценки параметра. Для примера, чтобы создать модель VAR (2), состоящую из трех рядов ответов, введите:
Mdl = varm(3,2);
numseries
- Количество временных рядов m1
(по умолчанию) | положительное целое числоКоличество m временных рядов, заданное как положительное целое число. numseries
задает размерность многомерной переменной отклика yt и инновационных εt.
numseries
устанавливает NumSeries
свойство.
Типы данных: double
numlags
- Количество откликов с отставаниемКоличество отстающих ответов для включения в модель, заданное в виде неотрицательного целого числа. Получившаяся модель является VAR (numlags
) модель. Все лаги имеют numseries
-by- numseries
матрицы коэффициентов, составленные из NaN
значения.
Типы данных: double
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
Синтаксис longhand позволяет вам создать модели, в которых известны некоторые или все коэффициенты. Во время оценки, estimate
накладывает ограничения равенства на любые известные параметры.
'Lags',[4 8]
задает модель VAR (8) с ненулевыми матрицами авторегрессивных коэффициентов при задержках 4
и 8
.Чтобы задать значения свойств, доступных для записи, используйте Name,Value
синтаксис аргумента пары. Для примера, 'Constant',[1; 2],'AR',{[0.1 -0.2; -0.3 0.5]}
устанавливает Constant
на [1; 2]
и AR
на {[0.1 -0.2; -0.3 0.5]}
.
'Lags'
- авторегрессионные полиномиальные лаги1:P
(по умолчанию) | числовой вектор уникальных положительных целых чиселАвторегрессионные полиномиальные лаги, заданные как разделенная разделенными запятой парами, состоящая из 'Lags'
и числовой вектор, содержащий самое большее P
элементы уникальных положительных целых чисел.
Длины Lags
и AR
должно быть равным. Лаги
- задержка, соответствующая матрице коэффициентов (j
)AR
.{j
}
Пример: 'Lags',[1 4]
Типы данных: double
Можно задать значения свойств записи, когда вы создаете объект модели с помощью синтаксиса аргумента пары "имя-значение" или после того, как вы создаете объект модели с помощью записи через точку. Для примера, чтобы создать модель VAR (1), состоящую из двух рядов откликов, и затем указать неизвестный срок временного тренда, введите:
Mdl = varm('AR',{NaN(2)}); Mdl.Trend = NaN;
NumSeries
- Количество временных рядов mЭто свойство доступно только для чтения.
Количество m временных рядов, заданное как положительное целое число. NumSeries
задает размерность многомерной переменной отклика yt и инновационных εt.
Типы данных: double
P
- Многомерный авторегрессионный полиномиальный порядокЭто свойство доступно только для чтения.
Многомерный авторегрессионный полином порядка, заданный как неотрицательное целое число. P
- это максимальная задержка, которая имеет ненулевую матрицу коэффициентов. Лаги, которые меньше P
может иметь матрицы коэффициентов, состоящие полностью из нулей.
P
задает количество предварительных наблюдений, необходимых для инициализации модели.
Типы данных: double
Constant
- Перехваты моделиNaN(NumSeries,1)
(по умолчанию) | числовой векторМоделируйте точки пересечения (или константы), заданные как NumSeries
-by-1 числовой вектор.
Пример: 'Constant',[1; 2]
Типы данных: double
AR
- Матрицы авторегрессионных коэффициентовАвторегрессионные матрицы коэффициентов, сопоставленное с отстающими откликами, задаются как камера вектор NumSeries
-by- NumSeries
числовые матрицы.
Задайте знаки коэффициентов, соответствующие тем коэффициентам в модели VAR, выраженным в обозначении разностного уравнения.
Если вы задаете Lags
аргумент пары "имя-значение" в Lags
, затем применяются следующие условия.
Длины AR
и Lags
равны.
AR
- матрица коэффициентов задержки {j
}Lags
.(j
)
По умолчанию AR
является numel(Lags)
-by-1 вектор камеры матриц, составленный из NaN
значения.
В противном случае применяются следующие условия.
Длина AR
является P
.
AR
- матрица коэффициентов задержки {j
}j
.
По умолчанию AR
является P
-by-1 вектор камеры матриц, составленный из NaN
значения.
Пример: 'AR',{[0.5 -0.1; 0.1 0.2]}
Типы данных: cell
Trend
- Линейный временной трендzeros(NumSeries,1)
(по умолчанию) | числовой векторЛинейный срок тренда времени, заданный как NumSeries
-by-1 числовой вектор. Значение по умолчанию не задает линейный временной тренд в модели.
Пример: 'Trend',[0.1; 0.2]
Типы данных: double
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
Description
- Описание моделиОписание модели, заданное как строковый скаляр или вектор символов. varm
сохраняет значение как строковый скаляр. Значение по умолчанию описывает параметрическую форму модели, например
"2-Dimensional VAR(3) Model"
.
Пример: 'Description','Model 1'
Типы данных: string
| char
SeriesNames
- Имена рядов ответовИмена рядов ответов, заданные как NumSeries
длина строки вектор. Значение по умолчанию является ['Y1' 'Y2'... '
.Y <reservedrangesplaceholder0>
']
Пример: 'SeriesNames',{'CPI' 'Unemployment'}
Типы данных: string
Примечание
NaN
-значенные элементы в свойствах указывают неизвестные, оценочные параметры. Заданные элементы указывают ограничения равенства на параметрах в оценке модели. Нововведения ковариации матричных Covariance
не может содержать смесь NaN
значения и действительные числа; вы должны полностью указать ковариацию или она должна быть полностью неизвестной (NaN(NumSeries)
).
estimate | Подбор вектора авторегрессии (VAR) к данным |
fevd | Сгенерируйте вектор модель авторегрессии (VAR), прогнозирующую ошибку отклонения разложение (FEVD) |
filter | Фильтруйте нарушения порядка через модель векторной авторегрессии (VAR) |
forecast | Прогнозирование вектора авторегрессия (VAR) ответы модели |
gctest | Тесты на причинность и экзогенность блоков для моделей векторной авторегрессии (VAR) |
infer | Инновации модели авторегрессии вектора вывода (VAR) |
irf | Сгенерируйте вектор модель авторегрессии (VAR) импульсных характеристик |
simulate | Симуляция Монте-Карло модели вектора авторегрессии (VAR) |
summarize | Отображение результатов оценки модели вектора авторегрессии (VAR) |
vecm | Преобразуйте модель векторной авторегрессии (VAR) в модель векторной коррекции ошибок (VEC) |
Создайте модель VAR нулевой степени, состоящую из одной серии ответов.
Mdl = varm
Mdl = varm with properties: Description: "1-Dimensional VAR(0) Model" SeriesNames: "Y" NumSeries: 1 P: 0 Constant: NaN AR: {} Trend: 0 Beta: [1×0 matrix] Covariance: NaN
Mdl
является varm
объект модели. Он содержит одну серию ответов, неизвестную константу и неизвестное инновационное отклонение. Свойства модели появляются в командной строке.
Предположим, что ваша задача имеет авторегрессивный коэффициент в лаге 1. Чтобы создать такую модель, задайте свойство авторегрессионного коэффициента (AR
) в камеру, содержащую NaN
значение с использованием записи через точку.
Mdl.AR = {NaN}
Mdl = varm with properties: Description: "1-Dimensional VAR(1) Model" SeriesNames: "Y" NumSeries: 1 P: 1 Constant: NaN AR: {NaN} at lag [1] Trend: 0 Beta: [1×0 matrix] Covariance: NaN
Если ваша задача содержит несколько рядов ответов, используйте другое varm
синтаксис для создания модели.
Создание модели VAR (4) для индекса потребительских цен (ИПЦ) и уровня безработицы.
Загрузите Data_USEconModel
набор данных. Объявить переменные для CPI (CPI
) и уровень безработицы (UNRATE
Серия.
load Data_USEconModel
cpi = DataTable.CPIAUCSL;
unrate = DataTable.UNRATE;
Создайте модель VAR (4) по умолчанию с помощью синтаксиса shorthand.
Mdl = varm(2,4)
Mdl = varm with properties: Description: "2-Dimensional VAR(4) Model" SeriesNames: "Y1" "Y2" NumSeries: 2 P: 4 Constant: [2×1 vector of NaNs] AR: {2×2 matrices of NaNs} at lags [1 2 3 ... and 1 more] Trend: [2×1 vector of zeros] Beta: [2×0 matrix] Covariance: [2×2 matrix of NaNs]
Mdl
является varm
объект модели. Он служит шаблоном для оценки модели. MATLAB ® рассматривает любые NaN
значения как неизвестные значения параметров, которые будут оценены. Для примера, Constant
свойство является вектором 2 на 1 NaN
значения. Поэтому константы модели являются параметрами активной модели, которые должны быть оценены.
Включите неизвестный линейный срок тренда времени путем установки Trend
свойство к NaN
использование записи через точку.
Mdl.Trend = NaN
Mdl = varm with properties: Description: "2-Dimensional VAR(4) Model with Linear Time Trend" SeriesNames: "Y1" "Y2" NumSeries: 2 P: 4 Constant: [2×1 vector of NaNs] AR: {2×2 matrices of NaNs} at lags [1 2 3 ... and 1 more] Trend: [2×1 vector of NaNs] Beta: [2×0 matrix] Covariance: [2×2 matrix of NaNs]
MATLAB расширяет NaN
к соответствующей длине, то есть вектору 2 на 1 NaN
значения.
Создайте модель VAR для трех произвольных ответных рядов. Задайте значения параметров в этой системе уравнений.
Предположим, что инновации являются многомерными Гауссовыми со средним значением 0 и ковариационной матрицей
Создайте переменные для значений параметров.
c = [1; 1; 0]; Phi1 = {[0.2 -0.1 0.5; -0.4 0.2 0; -0.1 0.2 0.3]}; delta = [1.5; 2; 0]; Sigma = [0.1 0.01 0.3; 0.01 0.5 0; 0.3 0 1];
Создайте объект модели VAR (1), представляющий систему динамических уравнений, используя соответствующие аргументы пары "имя-значение".
Mdl = varm('Constant',c,'AR',Phi1,'Trend',delta,'Covariance',Sigma)
Mdl = varm with properties: Description: "AR-Stationary 3-Dimensional VAR(1) Model with Linear Time Trend" SeriesNames: "Y1" "Y2" "Y3" NumSeries: 3 P: 1 Constant: [1 1 0]' AR: {3×3 matrix} at lag [1] Trend: [1.5 2 0]' Beta: [3×0 matrix] Covariance: [3×3 matrix]
Mdl
является полностью заданным varm
объект модели. По умолчанию varm
приписывает авторегрессионный коэффициент первой задержке.
Можно настроить свойства модели с помощью записи через точку. Для примера рассмотрим другую модель VAR, которая атрибутировать авторегрессивную матрицу коэффициентов Phi1
второй член с задержкой задает матрицу нулей для первого коэффициента с задержкой и рассматривает все остальные как равные Mdl
. Создайте эту модель VAR (2).
Mdl2 = Mdl; Phi = [zeros(3,3) Phi1]; Mdl2.AR = Phi
Mdl2 = varm with properties: Description: "AR-Stationary 3-Dimensional VAR(2) Model with Linear Time Trend" SeriesNames: "Y1" "Y2" "Y3" NumSeries: 3 P: 2 Constant: [1 1 0]' AR: {3×3 matrix} at lag [2] Trend: [1.5 2 0]' Beta: [3×0 matrix] Covariance: [3×3 matrix]
Также можно создать другой объект модели с помощью varm
и тот же синтаксис, что и для Mdl
, но дополнительно задайте 'Lags',2
.
Подбор модели VAR (4) к данным индекса потребительских цен (ИПЦ) и уровня безработицы.
Загрузите Data_USEconModel
набор данных.
load Data_USEconModel
Постройте график двух серий на отдельных графиках.
figure; plot(DataTable.Time,DataTable.CPIAUCSL); title('Consumer Price Index'); ylabel('Index'); xlabel('Date');
figure; plot(DataTable.Time,DataTable.UNRATE); title('Unemployment Rate'); ylabel('Percent'); xlabel('Date');
Стабилизируйте ИПЦ путем преобразования его в ряд темпов роста. Синхронизируйте две серии путем удаления первого наблюдения из ряда уровней безработицы.
rcpi = price2ret(DataTable.CPIAUCSL); unrate = DataTable.UNRATE(2:end);
Создайте модель VAR (4) по умолчанию с помощью синтаксиса shorthand.
Mdl = varm(2,4)
Mdl = varm with properties: Description: "2-Dimensional VAR(4) Model" SeriesNames: "Y1" "Y2" NumSeries: 2 P: 4 Constant: [2×1 vector of NaNs] AR: {2×2 matrices of NaNs} at lags [1 2 3 ... and 1 more] Trend: [2×1 vector of zeros] Beta: [2×0 matrix] Covariance: [2×2 matrix of NaNs]
Mdl
является varm
объект модели. Все свойства, содержащие NaN
значения соответствуют параметрам, которые должны быть оценены по данным.
Оцените модель, используя весь набор данных.
EstMdl = estimate(Mdl,[rcpi unrate])
EstMdl = varm with properties: Description: "AR-Stationary 2-Dimensional VAR(4) Model" SeriesNames: "Y1" "Y2" NumSeries: 2 P: 4 Constant: [0.00171639 0.316255]' AR: {2×2 matrices} at lags [1 2 3 ... and 1 more] Trend: [2×1 vector of zeros] Beta: [2×0 matrix] Covariance: [2×2 matrix]
EstMdl
является расчетным varm
объект модели. Он полностью задан, потому что все параметры имеют известные значения. Описание указывает, что авторегрессивный полином является стационарным.
Отобразите сводную статистику из оценки.
summarize(EstMdl)
AR-Stationary 2-Dimensional VAR(4) Model Effective Sample Size: 241 Number of Estimated Parameters: 18 LogLikelihood: 811.361 AIC: -1586.72 BIC: -1524 Value StandardError TStatistic PValue ___________ _____________ __________ __________ Constant(1) 0.0017164 0.0015988 1.0735 0.28303 Constant(2) 0.31626 0.091961 3.439 0.0005838 AR{1}(1,1) 0.30899 0.063356 4.877 1.0772e-06 AR{1}(2,1) -4.4834 3.6441 -1.2303 0.21857 AR{1}(1,2) -0.0031796 0.0011306 -2.8122 0.004921 AR{1}(2,2) 1.3433 0.065032 20.656 8.546e-95 AR{2}(1,1) 0.22433 0.069631 3.2217 0.0012741 AR{2}(2,1) 7.1896 4.005 1.7951 0.072631 AR{2}(1,2) 0.0012375 0.0018631 0.6642 0.50656 AR{2}(2,2) -0.26817 0.10716 -2.5025 0.012331 AR{3}(1,1) 0.35333 0.068287 5.1742 2.2887e-07 AR{3}(2,1) 1.487 3.9277 0.37858 0.705 AR{3}(1,2) 0.0028594 0.0018621 1.5355 0.12465 AR{3}(2,2) -0.22709 0.1071 -2.1202 0.033986 AR{4}(1,1) -0.047563 0.069026 -0.68906 0.49079 AR{4}(2,1) 8.6379 3.9702 2.1757 0.029579 AR{4}(1,2) -0.00096323 0.0011142 -0.86448 0.38733 AR{4}(2,2) 0.076725 0.064088 1.1972 0.23123 Innovations Covariance Matrix: 0.0000 -0.0002 -0.0002 0.1167 Innovations Correlation Matrix: 1.0000 -0.0925 -0.0925 1.0000
Этот пример следует из модели Estimate VAR (4).
Создание и оценка модели VAR (4) для темпов роста ИПЦ и уровня безработицы. Рассматривайте последние десять периодов как горизонт прогноза.
load Data_USEconModel
cpi = DataTable.CPIAUCSL;
unrate = DataTable.UNRATE;
rcpi = price2ret(cpi);
unrate = unrate(2:end);
Y = [rcpi unrate];
Mdl = varm(2,4);
EstMdl = estimate(Mdl,Y(1:(end-10),:));
Прогнозируйте 10 ответов с использованием оценочной модели и данных в выборке в качестве предварительных наблюдений.
YF = forecast(EstMdl,10,Y(1:(end-10),:));
Постройте график части серии с их прогнозируемыми значениями на отдельных графиках.
figure; plot(DataTable.Time(end - 50:end),rcpi(end - 50:end)); hold on plot(DataTable.Time((end - 9):end),YF(:,1)) h = gca; fill(DataTable.Time([end - 9 end end end - 9]),h.YLim([1,1,2,2]),'k',... 'FaceAlpha',0.1,'EdgeColor','none'); legend('True CPI growth rate','Forecasted CPI growth rate',... 'Location','NW') title('Quarterly CPI Growth Rate: 1947 - 2009'); ylabel('CPI growth rate'); xlabel('Year'); hold off
figure; plot(DataTable.Time(end - 50:end),unrate(end - 50:end)); hold on plot(DataTable.Time((end - 9):end),YF(:,2)) h = gca; fill(DataTable.Time([end - 9 end end end - 9]),h.YLim([1,1,2,2]),'k',... 'FaceAlpha',0.1,'EdgeColor','none'); legend('True unemployment rate','Forecasted unemployment rate',... 'Location','NW') title('Quarterly Unemployment Rate: 1947 - 2009'); ylabel('Unemployment rate'); xlabel('Year'); hold off
A vector autoregression (VAR) model является стационарной многомерной моделью временных рядов, состоящей из системы m уравнений m отдельных переменных отклика как линейных функций отстающих откликов и других членов.
Модель VAR (p) в difference-equation notation и в reduced form является
yt является numseries
-by-1 вектор значений, соответствующих numseries
переменные отклика в t времени, где t = 1,..., T. Структурный коэффициент является матрицей тождеств.
c является numseries
-by-1 вектор констант.
.R. j является numseries
-by- numseries
матрица авторегрессивных коэффициентов, где j = 1..., p и Φ <reservedrangesplaceholder0> не матрица, содержащая только нули.
xt является numpreds
-by-1 вектор значений, соответствующих numpreds
экзогенные переменные предиктора.
β является numseries
-by- numpreds
матрица коэффициентов регрессии.
δ является numseries
-by-1 вектор линейных значений временного тренда.
εt является numseries
-by-1 вектор случайных Гауссовых инноваций, каждый со средним значением 0 и коллективно a numseries
-by- numseries
ковариационная матрица Для <reservedrangesplaceholder3> ≠ <reservedrangesplaceholder2>, εt и εs независимы.
Конденсированное и в обозначении оператора задержки, система является
где , L yt является многомерным авторегрессионным полиномом, и I является numseries
-by- numseries
единичная матрица.
Для примера модель VAR (1), содержащая две серии откликов и три экзогенные переменные предиктора, имеет эту форму
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.