exponenta event banner

Моделирование регрессионных моделей с нестационарными ошибками

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

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

Как только остатки становятся неподвижными, можно определить соответствующее количество лагов для модели ошибок с помощью методологии Бокса и Дженкинса. Затем используйте 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 указывает, что имеется достаточно доказательств, чтобы предположить, что остаточный ряд не является корневым процессом единицы.

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

Ссылки

[1] Бокс, Г. Э. П., Г. М. Дженкинс и Г. К. Рейнсель. Анализ временных рядов: прогнозирование и контроль. 3-й ред. Энглвуд Клиффс, Нью-Джерси: Прентис Холл, 1994.

См. также

Связанные темы