Этот пример показывает, как моделировать ответы из регрессионной модели с безусловными нарушениями порядка ARIMA, принимая, что предикторы являются последовательностями белого шума.
Задайте регрессионую модель с ошибками ARIMA:
где нововведения Гауссовы с отклонением 1.
T = 150; % Sample size Mdl = regARIMA('MA',{1.4,0.8},'AR',0.5,'Intercept',3,... 'Variance',1,'Beta',[2;-1.5],'D',1);
Симулируйте два ряда Гауссовых предикторов со средним 0 и отклонением 1.
rng(1); % For reproducibility
X = randn(T,2);
Симулируйте и постройте график серии откликов.
y = simulate(Mdl,T,'X',X); figure; plot(y); title 'Simulated Responses'; axis tight;
Функции регресса y
на X
. Постройте график невязок и проверьте их на модуль корень.
RegMdl = fitlm(X,y); figure; subplot(2,1,1); plotResiduals(RegMdl,'caseorder'); subplot(2,1,2); plotResiduals(RegMdl,'lagged');
h = adftest(RegMdl.Residuals.Raw)
h = logical
0
Остаточные графики указывают, что они автокоррелированы и, возможно, нестационарны (по построению). h = 0
указывает, что недостаточно доказательств, чтобы предположить, что остаточный ряд не является модулем корневым процессом.
Обработайте нестационарные безусловные нарушения порядка путем соответствующего преобразования данных. В этом случае различаются отклики и предикторы. Переоцените регрессионую модель, используя преобразованные отклики, и постройте график невязок.
dY = diff(y); dX = diff(X); dRegMdl = fitlm(dX,dY); figure; subplot(2,1,1); plotResiduals(dRegMdl,'caseorder','LineStyle','-'); subplot(2,1,2); plotResiduals(dRegMdl,'lagged');
h = adftest(dRegMdl.Residuals.Raw)
h = logical
1
Остаточные графики указывают, что они все еще автокоррелированы, но стационарны. h = 1
указывает, что существует достаточно доказательств, чтобы предположить, что остаточный ряд не является модулем корневым процессом.
Если невязки появляются стационарными, можно определить соответствующее количество лагов для модели ошибки с помощью методологии Box и Jenkins. Затем используйте regARIMA
чтобы полностью смоделировать регрессионную модель с ошибками ARIMA.
Этот пример показывает, как моделировать ответы из регрессионой модели с нестационарными, экспоненциальными, безусловными нарушениями порядка. Предположим, что предикторы являются последовательностями белого шума.
Задайте следующую модель ошибки ARIMA:
где инновации являются Гауссовыми со средним 0 и отклонением 0,05.
T = 50; % Sample size MdlU = arima('AR',0.9,'Variance',0.05,'D',1,'Constant',0);
Моделируйте безусловные нарушения порядка. Экспонуция моделируемых ошибок.
rng(10); % For reproducibility u = simulate(MdlU,T,'Y0',[0.5:1.5]'); expU = exp(u);
Симулируйте два ряда Гауссовых предикторов со средним 0 и отклонением 1.
X = randn(T,2);
Сгенерируйте ответы из регрессионной модели с ошибками временных рядов:
Beta = [2;-1.5]; Intercept = 3; y = Intercept + X*Beta + expU;
Постройте график ответов.
figure plot(y) title('Simulated Responses') axis tight
Серия реакций, по-видимому, растет экспоненциально (по мере построения).
Функции регресса y
на X
. Постройте график невязок.
RegMdl1 = fitlm(X,y); figure subplot(2,1,1) plotResiduals(RegMdl1,'caseorder','LineStyle','-') subplot(2,1,2) plotResiduals(RegMdl1,'lagged')
Невязки, по-видимому, растут экспоненциально и кажутся автокоррелированными (по построению).
Обработайте нестационарные безусловные нарушения порядка путем соответствующего преобразования данных. В этом случае берите журнал ответной серии. Различие записанных ответов. Рекомендуется преобразовать предикторы так же, как и ответы, чтобы сохранить исходную интерпретацию их отношений. Однако не преобразуйте предикторы в этом случае, потому что они содержат отрицательные значения. Переоцените регрессионую модель, используя преобразованные отклики, и постройте график невязок.
dLogY = diff(log(y)); RegMdl2 = fitlm(X(2:end,:),dLogY); figure subplot(2,1,1) plotResiduals(RegMdl2,'caseorder','LineStyle','-') subplot(2,1,2) plotResiduals(RegMdl2,'lagged')
h = adftest(RegMdl2.Residuals.Raw)
h = logical
1
Остаточные графики указывают, что они все еще автокоррелированы, но стационарны. h = 1
указывает, что существует достаточно доказательств, чтобы предположить, что остаточный ряд не является модулем корневым процессом.
Если невязки появляются стационарными, можно определить соответствующее количество лагов для модели ошибки с помощью методологии Box и Jenkins. Затем используйте regARIMA
чтобы полностью смоделировать регрессионную модель с ошибками ARIMA.
[1] Box, G. E. P., G. M. Jenkins, and G. C. Reinsel. Анализ временных рядов: прогнозирование и управление. 3-й эд. Englewood Cliffs, Нью-Джерси: Prentice Hall, 1994.