Предскажите модель регрессии с ошибками ARIMA

Этот пример показывает, как предсказать модель регрессии с ARIMA (3,1,2) ошибки forecast и simulate.

Моделируйте два Гауссовых ряда предиктора со средним значением 2 и отклонение 1.

rng(1);
T = 50; % Sample size
X = randn(T,2) + 2;

Задайте модель регрессии с ARIMA (3,1,2) ошибки:

yt=3+Xt[-21.5]+ut

(1-0.9L+0.5L2-0.2L3)(1-L)ut=(1+0.75L-0.15L2)εt,

где εt является Гауссовым со средним значением 0 и отклонением 2.

Mdl = regARIMA('Intercept',3,'Beta',[-2;1.5],'AR',{0.9,-0.5,0.2},...
    'D',1','MA',{0.75,-0.15},'Variance',2);

Mdl является полностью заданной моделью регрессии с ARIMA (3,1,2) ошибки. Методы, такие как simulate и forecast требуют полностью заданной модели.

Моделируйте 30 наблюдений от Mdl.

[y,e,u] = simulate(Mdl,30,'X',X(1:30,:));

y содержит моделируемые ответы. e и u содержат соответствующие моделируемые инновации и безусловные воздействия, соответственно. Это - лучшая практика предоставить forecast преддемонстрационные инновации и безусловные воздействия, если они доступны.

Вычислите прогнозы MMSE для Mdl 20 периодов в будущее с помощью forecast. Вычислите соответствующие 95%-е интервалы прогноза.

[yF,yMSE] = forecast(Mdl,20,'X0',X(1:30,:),'U0',u,...
    'E0',e,'XF',X(31:T,:));
yFCI = [yF,yF] + 1.96*[-sqrt(yMSE),sqrt(yMSE)];

yFCI 20 2 матрица, содержащая 20 интервалов прогноза. Первый столбец yFCI содержит нижние границы для интервалов прогноза, и второй столбец содержит верхние границы.

Предскажите Mdl 20 периодов в будущую симуляцию Монте-Карло использования. Вычислите соответствующие 95%-е интервалы прогноза

yMC = simulate(Mdl,20,'numPaths',1000,'X',X(31:T,:),'U0',u,'E0',e);
yMCBar = mean(yMC,2);
yMCCI = prctile(yMC,[2.5,97.5],2);

yMCBar 20 1 вектор, который содержит прогнозы Монте-Карло по горизонту прогноза. Как yFCI, yMMCI 20 2 матрица, содержащая интервалы прогноза, но на основе симуляции Монте-Карло.

Постройте два набора прогноза и их соответствующие 95%-е интервалы прогноза.

figure
h1 = plot(1:30,y);
title('{\bf Forecasts and 95% Forecast Intervals}')
hold on
h2 = plot(31:50,yF,'r','LineWidth',2);
h3 = plot(31:50,yFCI,'r--','LineWidth',2);
h4 = plot(31:50,yMCBar,'k','LineWidth',2);
h5 = plot(31:50,yMCCI,'k--','LineWidth',2);
plot(30:31,[repmat(y(end),3,1),[yF(1),yFCI(1,:)]'],'b')
legend([h1,h2,h3(1),h4,h5(1)],'Observations','MMSE Forecasts',...
    'MMSE Forecast Intervals','Monte Carlo Forecasts',...
    'Monte Carlo Forecast Intervasls','Location','SouthWest')
xlabel('Time')
ylabel('y')
axis tight
hold off

MMSE и прогнозы Монте-Карло фактически эквивалентны. Между интервалами прогноза существуют незначительные несоответствия.

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

Смотрите также

| |

Связанные примеры

Больше о