vgx
Функции к объектам моделиВ R2017a, функции varm
, arma2ar
, arma2ma
, и isStable
замененный vgxar
, vgxcount
, vgxdisp
, vgxget
, vgxinfer
, vgxloglik
, vgxma
, vgxplot
, vgxpred
, vgxproc
, vgxqual
, vgxset
, vgxsim
, и vgxvarx
. Если вы используете более старый vgx
многомерные функции анализа данных в релизах после R2017b, MATLAB® выдает ошибку. Эта тема показывает вам, как преобразовать общие задачи, которые используют vgx
функции к более новой функциональности.
Примите эти условия:
Вы хотите смоделировать три переменные отклика одновременно при помощи модели VARX(4). Модель содержит компонент регрессии для двух переменных предикторов, постоянного вектора и линейного термина тренда времени.
Преддемонстрационные данные об ответе находятся в 4 3 матричном Y0
.
Демонстрационные данные об ответе оценки находятся в 100 3 матричном Y
.
Внешние данные находятся в 100 2 матричном X
.
Эта таблица сравнивает старые и новые способы выполнить общие задачи, на основе установленных условий.
Задача | Старая функциональность или поведение | Новая функциональность или поведение |
---|---|---|
Создайте шаблон модели VAR (4) для оценки. |
Mdl = vgxset('n',3,'nAR',4,'Constant',true); |
Mdl = varm(3,4); Mdl.Trend = nan(3,1); |
Получите свойства модели, такой как, инновационная ковариационная матрица. |
vgxget(Mdl,'Q') |
Mdl.Covariance |
Установите ограничения равенства для оценки; например, установите константу модели на вектор из единиц. |
Mdl = vgxset(Mdl,'a',ones(3,1),'asolve',false(3,1)); |
Mdl.Constant = ones(3,1); |
Подбирайте неограниченную модель с трендом времени к данным. Все внешние предикторы происходят в каждом уравнении ответа и не совместно используют коэффициенты. | Xk = [(1:100)' X]; % Include linear trend Xk = kron(Xk,eye(3)); % Create design matrix Xk = mat2cell(Xk,3*ones(100,1),size(Xk,2)); % Pack into 100-by-1 cell vector Mdl.nX = size(Xk{1},2); % vgxvarx must know the number ... % of exogenous variables EstMdl = vgxvarx(Mdl,Y,Xk,Y0); vgxvarx требует матрицы проекта, а не матрицы данных. Линейный тренд и две внешних переменные дают к девяти столбцам в матрице проекта. |
EstMdl = estimate(Mdl,Y,'Y0',Y0,'X',X); |
Подбирайте модель к данным. X(:,1) появляется во всех уравнениях, но X(:,2) появляется в первом уравнении только. |
Xk = [(1:100)' X]; Xk = [kron(Xk(:,1:2),eye(3)) kron(Xk(:,3),[1; 0; 0])]; Xk = mat2cell(Xk,3*ones(100,1),size(Xk,2)); EstMdl = vgxvarx(Mdl,Y,Xk,Y0); |
Mdl.Beta = nan(3,2); Mdl.Beta(2:3,2) = 0; EstMdl = estimate(Mdl,Y,'Y0',Y0,'X',X); |
Получите оцененные коэффициенты регрессии. |
|
|
Отобразите предполагаемую модель. |
vgxdisp(EstMdl) |
summarize(EstMdl) |
Получите количество неограниченных или предполагаемых параметров в модели. | [~,numactive] = vgxcount(EstMdl); numactive включает оцененные элементы в инновационную ковариационную матрицу. | results = summarize(EstMdl); numactive = results.NumEstimatedParameters; numactive не включает оцененные элементы инновационной ковариационной матрицы. |
Выведите остаточные значения. |
[EstMdl,~,~,E] = vgxvarx(Mdl,Y,Xk,Y0); % Method 1 E = vgxinfer(EstMdl,Y,X,Y0); % Method 2 |
[EstMdl,~,~,E] = estimate(Mdl,Y,'Y0',Y0,'X',X); E = infer(EstMdl,Y,'Y0',Y0,'X',X); |
Получите подходящую статистику. |
logl = vgxloglik(EstMdl,E); [aic,bic] = aicbic(logl,numactive - 6,100) ... % Remove count of estimated covariance elements |
logl = results.LogLikelihood; aic = results.AIC; bic = results.BIC; |
Определите устойчивость модели. |
isstable = vgxqual(EstMdl); |
ARLagOp = LagOp([{eye(3)} EstMdl.AR]); isstable = isStable(ARLagOp); |
Симулируйте 1 000 путей ответов в период оценки. |
YSim = vgxproc(EstMdl,100,X,Y0,[],1000); |
YSim = simulate(EstMdl,100,'Y0',Y0,... 'X',X,'NumPaths',1000); |
Предскажите модель в горизонт с 8 периодами с 8 2 матричным XF содержа будущие внешние данные. |
XFk = [(101:108)' XF];
XFk = kron(XFk,eye(3)); % Create design matrix
XFk = mat2cell(XFk,3*ones(8,1),size(XFk,2));
YF = vgxpred(EstMdl,8,XFk,Y); |
YF = forecast(EstMdl,8,Y,'X',XF); |
Некоторые заметные различия между vgx
и varm
функциональности:
varm
не поддерживает создание моделей с компонентами MA или структурным. Однако можно выполнить некоторые задачи с помощью неявной модели SVARMA. Смотрите arma2ar
, arma2ma
, armairf
, и armafevd
.
estimate
не поддерживает спецификацию диагональной ковариационной матрицы для оценки.
varm
не позволяет тот же коэффициент регрессии в нескольких уравнениях. Каждая внешняя переменная сопоставлена с уникальным коэффициентом регрессии через уравнения.
Функции в varm
среда не размещает разнообразные пути внешних данных. Вместо этого когда функция работает с разнообразными путями ответов или инноваций, функция применяет те же внешние данные ко всем путям.