Симулируйте регрессионные модели с нестационарными ошибками

Симулируйте регрессионую модель с нестационарными ошибками

Этот пример показывает, как моделировать ответы из регрессионной модели с безусловными нарушениями порядка ARIMA, принимая, что предикторы являются последовательностями белого шума.

Задайте регрессионую модель с ошибками ARIMA:

yt=3+Xt[2-1.5]+ut

Δut=0.5Δut-1+εt+1.4εt-1+0.8εt-2,

где нововведения Гауссовы с отклонением 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;

Figure contains an axes. The axes with title Simulated Responses contains an object of type line.

Функции регресса y на X. Постройте график невязок и проверьте их на модуль корень.

RegMdl = fitlm(X,y);

figure;
subplot(2,1,1);
plotResiduals(RegMdl,'caseorder');
subplot(2,1,2);
plotResiduals(RegMdl,'lagged');

Figure contains 2 axes. Axes 1 with title Case order plot of residuals contains 2 objects of type line. Axes 2 with title Plot of residuals vs. lagged residuals contains 3 objects of type line.

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');

Figure contains 2 axes. Axes 1 with title Case order plot of residuals contains 2 objects of type line. Axes 2 with title Plot of residuals vs. lagged residuals contains 3 objects of type line.

h = adftest(dRegMdl.Residuals.Raw)
h = logical
   1

Остаточные графики указывают, что они все еще автокоррелированы, но стационарны. h = 1 указывает, что существует достаточно доказательств, чтобы предположить, что остаточный ряд не является модулем корневым процессом.

Если невязки появляются стационарными, можно определить соответствующее количество лагов для модели ошибки с помощью методологии Box и Jenkins. Затем используйте regARIMA чтобы полностью смоделировать регрессионную модель с ошибками ARIMA.

Симулируйте регрессионую модель с нестационарными экспоненциальными ошибками

Этот пример показывает, как моделировать ответы из регрессионой модели с нестационарными, экспоненциальными, безусловными нарушениями порядка. Предположим, что предикторы являются последовательностями белого шума.

Задайте следующую модель ошибки ARIMA:

Δut=0.9Δut-1+εt,

где инновации являются Гауссовыми со средним 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);

Сгенерируйте ответы из регрессионной модели с ошибками временных рядов:

yt=3+Xt[2-1.5]+eut.

Beta = [2;-1.5];
Intercept = 3;
y = Intercept + X*Beta + expU;

Постройте график ответов.

figure
plot(y)
title('Simulated Responses')
axis tight

Figure contains an axes. The axes with title Simulated Responses contains an object of type line.

Серия реакций, по-видимому, растет экспоненциально (по мере построения).

Функции регресса y на X. Постройте график невязок.

RegMdl1 = fitlm(X,y);

figure
subplot(2,1,1)
plotResiduals(RegMdl1,'caseorder','LineStyle','-')
subplot(2,1,2)
plotResiduals(RegMdl1,'lagged')

Figure contains 2 axes. Axes 1 with title Case order plot of residuals contains 2 objects of type line. Axes 2 with title Plot of residuals vs. lagged residuals contains 3 objects of type line.

Невязки, по-видимому, растут экспоненциально и кажутся автокоррелированными (по построению).

Обработайте нестационарные безусловные нарушения порядка путем соответствующего преобразования данных. В этом случае берите журнал ответной серии. Различие записанных ответов. Рекомендуется преобразовать предикторы так же, как и ответы, чтобы сохранить исходную интерпретацию их отношений. Однако не преобразуйте предикторы в этом случае, потому что они содержат отрицательные значения. Переоцените регрессионую модель, используя преобразованные отклики, и постройте график невязок.

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')

Figure contains 2 axes. Axes 1 with title Case order plot of residuals contains 2 objects of type line. Axes 2 with title Plot of residuals vs. lagged residuals contains 3 objects of type line.

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.

См. также

Похожие темы