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); |
| Смоделировать 1000 путей ответов в течение периода оценки. |
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 фреймворк не поддерживает несколько путей экзогенных данных. Вместо этого, когда функция работает на нескольких путях ответов или нововведений, функция применяет одни и те же внешние данные ко всем путям.