В этом примере показано, как спрогнозировать мультипликативную сезонную модель ARIMA с помощью forecast
. Временные ряды - ежемесячные международные пассажирские номера авиакомпаний с 1949 по 1960 год.
Загрузите набор данных Data_Airline
.
load('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.0952e-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% интервалами прогноза на основе моделирования.