Этот пример показывает, как предсказать мультипликативную сезонную модель ARIMA с помощью forecast
. Временные ряды являются ежемесячными международными числами авиапассажира от 1 949 до 1960.
Загрузите набор данных Data_Airline
.
load(fullfile(matlabroot,'examples','econ','Data_Airline.mat')) y = log(Data); T = length(y); Mdl = arima('Constant',0,'D',1,'Seasonality',12,... 'MALags',1,'SMALags',12); EstMdl = estimate(Mdl,y);
ARIMA(0,1,1) Model Seasonally Integrated with Seasonal MA(12) (Gaussian Distribution): Value StandardError TStatistic PValue _________ _____________ __________ __________ Constant 0 0 NaN NaN MA{1} -0.37716 0.066794 -5.6466 1.6364e-08 SMA{12} -0.57238 0.085439 -6.6992 2.0953e-11 Variance 0.0012634 0.00012395 10.193 2.1406e-24
Используйте подобранную модель, чтобы сгенерировать прогнозы MMSE и соответствующие среднеквадратичные погрешности по 60-месячному (5-летнему) горизонту. Используйте наблюдаемый ряд в качестве преддемонстрационных данных. По умолчанию forecast
выводит преддемонстрационные инновации с помощью заданной модели и наблюдений.
[yF,yMSE] = forecast(EstMdl,60,y); upper = yF + 1.96*sqrt(yMSE); lower = yF - 1.96*sqrt(yMSE); figure plot(y,'Color',[.75,.75,.75]) hold on h1 = plot(T+1:T+60,yF,'r','LineWidth',2); h2 = plot(T+1:T+60,upper,'k--','LineWidth',1.5); plot(T+1:T+60,lower,'k--','LineWidth',1.5) xlim([0,T+60]) title('Forecast and 95% Forecast Interval') legend([h1,h2],'Forecast','95% Interval','Location','NorthWest') hold off
Прогноз MMSE показывает количества авиапассажира, продолжающие вырасти по горизонту прогноза. Доверительные границы показывают, что снижение в пассажирских количествах вероятно, как бы то ни было. Поскольку это - неустановившийся процесс, ширина интервалов прогноза растет в зависимости от времени.
Моделируйте 500 демонстрационных путей по тому же горизонту прогноза. Сравните симуляцию, среднюю для прогноза MMSE.
rng 'default'; res = infer(EstMdl,y); Ysim = simulate(EstMdl,60,'NumPaths',500,'Y0',y,'E0',res); yBar = mean(Ysim,2); simU = prctile(Ysim,97.5,2); simL = prctile(Ysim,2.5,2); figure h1 = plot(yF,'Color',[.85,.85,.85],'LineWidth',5); hold on h2 = plot(yBar,'k--','LineWidth',1.5); xlim([0,60]) plot([upper,lower],'Color',[.85,.85,.85],'LineWidth',5) plot([simU,simL],'k--','LineWidth',1.5) title('Comparison of MMSE and Monte Carlo Forecasts') legend([h1,h2],'MMSE','Monte Carlo','Location','NorthWest') hold off
Прогноз MMSE и среднее значение симуляции фактически неразличимы. Существуют небольшие несоответствия между теоретическими 95%-ми интервалами прогноза и основанными на симуляции 95%-ми интервалами прогноза.
arima
| estimate
| forecast
| infer
| simulate