Этот пример показывает, как моделировать демонстрационные пути из мультипликативной сезонной модели ARIMA с помощью simulate
. Временные ряды являются ежемесячными международными числами авиапассажира от 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
res = infer(EstMdl,y);
Используйте подобранную модель, чтобы моделировать 25 реализации количеств авиапассажира по 60-месячному (5-летнему) горизонту. Используйте наблюдаемый ряд и выведенные невязки как преддемонстрационные данные.
rng('default') Ysim = simulate(EstMdl,60,'NumPaths',25,'Y0',y,'E0',res); mn = mean(Ysim,2); figure plot(y,'k') hold on plot(T+1:T+60,Ysim,'Color',[.85,.85,.85]); h = plot(T+1:T+60,mn,'k--','LineWidth',2); xlim([0,T+60]) title('Simulated Airline Passenger Counts') legend(h,'Simulation Mean','Location','NorthWest') hold off
Моделируемые прогнозы показывают рост и сезонную периодичность, подобную наблюдаемому ряду.
Используйте симуляции, чтобы оценить вероятность, что логарифмический авиапассажир рассчитывает, встретит или превысит значение 7 когда-то в течение следующих 5 лет. Вычислите ошибку Монте-Карло, сопоставленную с предполагаемой вероятностью.
rng default Ysim = simulate(EstMdl,60,'NumPaths',1000,'Y0',y,'E0',res); g7 = sum(Ysim >= 7) > 0; phat = mean(g7)
phat = 0.3910
err = sqrt(phat*(1-phat)/1000)
err = 0.0154
Существует приблизительно 39%-й шанс, что (журнал) количество авиапассажиров будет соответствовать или превышать 7 за следующие 5 лет. Стандартная погрешность Монте-Карло оценки - приблизительно 0,02.
Используйте симуляции, чтобы построить распределение (журнала), авиапассажир считает 60 месяцев в будущее.
figure
histogram(Ysim(60,:),10)
title('Distribution of Passenger Counts in 60 months')
arima
| estimate
| infer
| simulate