В этом примере показано, как предсказать регрессионую модель с ошибками 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