Этот пример показывает, как предсказать модель регрессии с ARIMA (3,1,2) ошибки forecast
и simulate
.
Моделируйте два Гауссовых ряда предиктора со средним значением 2 и отклонение 1.
rng(1);
T = 50; % Sample size
X = randn(T,2) + 2;
Задайте модель регрессии с ARIMA (3,1,2) ошибки:
где является Гауссовым со средним значением 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 и прогнозы Монте-Карло фактически эквивалентны. Между интервалами прогноза существуют незначительные несоответствия.
Ширина увеличений интервалов прогноза как время увеличивается. Это - последствие прогнозирования с интегрированными ошибками.
estimate
| forecast
| regARIMA