Создайте векторную модель (VAR) авторегрессии
varm
функция возвращает varm
объект, задающий функциональную форму и хранящий значения параметров p - порядок, стационарная, многомерная векторная модель (VAR(p)) модели авторегрессии.
Ключевые компоненты varm
объект включает количество временных рядов (response-variable dimensionality) и порядок многомерного авторегрессивного полинома (p), потому что они полностью задают структуру модели. Другие компоненты модели включают компонент регрессии, чтобы сопоставить те же внешние переменные предикторы к каждому ряду ответа, и постоянный и условия тренда времени. Учитывая размерность переменной отклика и p, все содействующие матрицы и инновационные параметры распределения являются неизвестными и допускающими оценку, если вы не задаете их значения.
Чтобы оценить модели, содержащие неизвестные значения параметров, передайте модель и данные к estimate
. Работать с предполагаемым или полностью заданным varm
объект модели, передайте его объектной функции.
создает модель VAR (0), состоявшую из одного ряда ответа.Mdl
= varm
создает VAR (Mdl
= varm(numseries
,numlags
)numlags
) модель состоит из numseries
ряд ответа. Максимальной ненулевой задержкой является numlags
. Все задержки имеют numseries
- numseries
содействующие матрицы состоят из NaN
значения.
Этот краткий синтаксис допускает легкое создание шаблона модели. Шаблон модели подходит для неограниченной оценки параметра, то есть, оценки без ограничений равенства параметра. После того, как вы создадите модель, можно изменить значения свойств с помощью записи через точку.
свойства наборов или аргументы пары "имя-значение" использования дополнительных опций. Заключите каждое имя в кавычки. Например, Mdl
= varm(Name,Value
)'Lags',[1 4],'AR',AR
задает две авторегрессивных содействующих матрицы в AR
в задержках 1
и 4
.
Этот рукописный синтаксис допускает создание более гибких моделей. varm
выводит количество ряда (NumSeries
) и авторегрессивная полиномиальная степень (P
) из свойств, которые вы устанавливаете. Поэтому значения свойств, которые соответствуют количеству ряда или авторегрессивной полиномиальной степени, должны быть сопоставимы друг с другом.
Краткий синтаксис обеспечивает простой способ к вам создать шаблоны модели, которые подходят для неограниченной оценки параметра. Например, чтобы создать модель VAR (2), состоявшую из трех рядов ответа, введите:
Mdl = varm(3,2);
numseries
— Количество временных рядовКоличество временных рядов, заданных как положительное целое число. numseries
задает размерность многомерной переменной отклика и инноваций, yt и εt, соответственно.
Типы данных: double
numlags
— Количество изолированных ответовКоличество изолированных ответов, чтобы включать в модель, заданную как неотрицательное целое число. Получившаяся модель является VAR (numlags
) модель. Все задержки имеют numseries
- numseries
содействующие матрицы состоят из NaN
значения.
Типы данных: double
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
Рукописный синтаксис позволяет вам создать модели, в которых некоторые или все коэффициенты известны. Во время оценки, 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
— Количество временных рядовЭто свойство доступно только для чтения.
Количество временных рядов, заданных как положительное целое число. NumSeries
задает размерность многомерной переменной отклика и инноваций, yt и εt, соответственно.
Типы данных: double
P
— Многомерный авторегрессивный полиномиальный порядокЭто свойство доступно только для чтения.
Многомерный авторегрессивный полиномиальный порядок, заданный как неотрицательное целое число. P
максимальная задержка, которая имеет ненулевую матрицу коэффициентов. Задержки, которые меньше P
могли составить содействующие матрицы полностью нулей.
P
задает количество преддемонстрационных наблюдений, требуемых инициализировать модель.
Типы данных: double
Constant
— Прерывания моделиNaN(NumSeries,1)
(значение по умолчанию) | числовой векторПрерывания модели (или константы), заданный как NumSeries
- 1 числовой вектор.
Пример: 'Constant',[1; 2]
Типы данных: double
AR
— Авторегрессивные содействующие матрицыАвторегрессивные содействующие матрицы сопоставлены с изолированными ответами, заданными как вектор ячейки NumSeries
- NumSeries
числовые матрицы.
Задайте содействующие знаки, соответствующие тем коэффициентам в модели VAR, выраженной в обозначении разностного уравнения.
Если вы устанавливаете Lags
аргумент пары "имя-значение" Lags
, затем следующие условия применяются.
Длины AR
и Lags
равны.
AR {
матрица коэффициентов j
}Задержек
задержки (
.j
)
По умолчанию, AR
numel(Lags)
- 1 вектор ячейки матриц, состоявших из NaN
значения.
В противном случае следующие условия применяются.
Длина AR
P
.
AR {
матрица коэффициентов задержки j
}j
.
По умолчанию, AR
P
- 1 вектор ячейки матриц, состоявших из NaN
значения.
Пример: 'AR',{[0.5 -0.1; 0.1 0.2]}
Типы данных: cell
Trend
— Линейный тренд времениzeros(NumSeries,1)
(значение по умолчанию) | числовой векторЛинейный термин тренда времени, заданный как NumSeries
- 1 числовой вектор. Значение по умолчанию не задает линейного тренда времени в модели.
Пример: 'Trend',[0.1; 0.2]
Типы данных: double
Beta
— Матрица коэффициента регрессииNumSeries
- 0 пустых матриц (значение по умолчанию) | числовая матрицаМатрица коэффициента регрессии сопоставлена с переменными предикторами, заданными как NumSeries
- NumPreds
числовая матрица. NumPreds
количество переменных предикторов, то есть, количество столбцов в данных о предикторе.
Бета (
содержит коэффициенты регрессии для каждого предиктора в уравнении ответа yj
,:)j
T. \beta:
содержит коэффициент регрессии в каждом уравнении ответа для предиктора 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
- NumSeries
числовая, положительная определенная матрица.
Пример: 'Covariance',eye(2)
Типы данных: double
Description
Описание моделиОписание модели, заданное как скаляр строки или вектор символов. varm
хранит значение как скаляр строки. Значение по умолчанию описывает параметрическую форму модели, например
, "2-Dimensional VAR(3) Model"
.
Пример: 'Description','Model 1'
Типы данных: string
| char
SeriesNames
— Серийные имена ответаСерийные имена ответа, заданные как NumSeries
вектор строки длины. Значением по умолчанию является ['Y1' 'Y2'... 'Y
.NumSeries
']
Пример: 'SeriesNames',{'CPI' 'Unemployment'}
Типы данных: string
NaN
- ценные элементы в свойствах указывают на неизвестные, допускающие оценку параметры. Указанные элементы указывают на ограничения равенства на параметры по оценке модели. Инновационная ковариационная матрица Covariance
не может содержать соединение NaN
значения и вещественные числа; необходимо полностью задать ковариацию, или это должно быть абсолютно неизвестно (NaN(NumSeries)
).
estimate | Подбирайте векторную модель (VAR) авторегрессии к данным |
fevd | Сгенерируйте векторное разложение отклонения ошибки прогноза (FEVD) модели (VAR) авторегрессии |
filter | Пропустите воздействия через векторную модель (VAR) авторегрессии |
forecast | Предскажите векторные ответы модели (VAR) авторегрессии |
gctest | Причинная связь Грейнджера и блок exogeneity тестируют на векторные модели (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) для индекса потребительских цен (CPI) и уровня безработицы.
Загрузите Data_USEconModel
набор данных. Объявите переменные для CPI (CPI
) и уровень безработицы (UNRATE
) ряд.
load Data_USEconModel
cpi = DataTable.CPIAUCSL;
unrate = DataTable.UNRATE;
Создайте модель VAR (4) по умолчанию с помощью краткого синтаксиса.
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) к данным об уровне безработицы и индексу потребительских цен (CPI).
Загрузите 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');
Стабилизируйте CPI путем преобразования его в серию темпов роста. Синхронизируйте два ряда путем удаления первого наблюдения из ряда уровня безработицы.
rcpi = price2ret(DataTable.CPIAUCSL); unrate = DataTable.UNRATE(2:end);
Создайте модель VAR (4) по умолчанию с помощью краткого синтаксиса.
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
Этот пример следует из Оценочного VAR (4) Модель.
Создайте и оцените модель VAR (4) для темпа роста CPI и показателей безработицы. Обработайте последние десять периодов как горизонт прогноза.
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
vector autoregression (VAR) model является стационарной многомерной моделью временных рядов, состоящей из системы уравнений m m отличные переменные отклика как линейные функции изолированных ответов и других условий.
Модель VAR (p) в difference-equation notation и в reduced form
yt является numseries
- 1 вектор значений, соответствующих numseries
переменные отклика во время t, где t = 1..., T. Структурный коэффициент является единичной матрицей.
c является numseries
- 1 вектор констант.
Φj является numseries
- numseries
матрица авторегрессивных коэффициентов, где j = 1..., p и Φp не является матрицей, содержащей только нули.
xt является numpreds
- 1 вектор значений, соответствующих numpreds
внешние переменные предикторы.
β является numseries
- numpreds
матрица коэффициентов регрессии.
δ является numseries
- 1 вектор линейных значений тренда времени.
εt является numseries
- 1 вектор случайных Гауссовых инноваций, каждого со средним значением 0 и коллективно numseries
- numseries
ковариационная матрица Σ. Для t ≠ s, εt и εs независимы.
Сжатый и в обозначении оператора задержки, система
где , Φ (L), yt является многомерным авторегрессивным полиномом и I, является numseries
- numseries
единичная матрица.
Например, модель VAR (1), содержащая два ряда ответа и три внешних переменных предиктора, имеет эту форму
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.