Этот пример показывает, как оценить сезонную модель ARIMA:
Моделируйте сезонные эффекты с помощью мультипликативной сезонной модели.
Используйте переменные показателя в качестве регрессионного компонента для сезонных эффектов, называемых сезонными манекенами.
Впоследствии их прогнозы показывают, что методы дают аналогичные результаты. Временные ряды - ежемесячные международные пассажирские номера авиакомпаний с 1949 по 1960 год.
Загрузите набор данных Data_Airline
, и постройте естественный журнал ежемесячных подсчётов количества пассажиров.
load('Data_Airline.mat') dat = log(Data); % Transform to logarithmic scale T = size(dat,1); y = dat(1:103); % Estimation sample
y
является частью dat
используется для оценки, а остальная часть dat
- выборка удержания для сравнения прогнозов двух моделей.
Создайте ARIMA модель
где является независимым и идентично распределенным нормально распределенным рядом со средним 0 и отклонением . Использование estimate
для подгонки Mdl1
на y
.
Mdl1 = arima('Constant',0,'MALags',1,'D',1,... 'SMALags',12,'Seasonality',12); EstMdl1 = estimate(Mdl1,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.35732 0.088031 -4.059 4.9286e-05 SMA{12} -0.61469 0.096249 -6.3864 1.6985e-10 Variance 0.001305 0.0001527 8.5467 1.2671e-17
Подобранная модель
где iid обычно распределенный ряд со средним значением 0 и отклонением 0,0013.
Создайте модель ARIMAX (0,1,1) с сезонным дифференцированием периода 12 и регрессионым компонентом ,
- серия T- векторов-столбцов, имеющая длину 12, которая указывает, в каком месяце наблюдение измеряли. A 1 в строке i указывает, что наблюдение было измерено в месяце i, остальные элементы - 0 с.
Обратите внимание, что если вы включаете аддитивную константу в модель, то строки T матрицы проекта X
состоят из векторов-строк . Поэтому X
является неполный ранг, и один коэффициент регрессии не идентифицируется. Константа остается вне этого примера, чтобы избежать отвлечения от основной цели. Форматируйте матрицу X в выборке
X = dummyvar(repmat((1:12)',12,1)); % Format the presample X matrix X0 = [zeros(1,11) 1; dummyvar((1:12)')]; Mdl2 = arima('Constant',0,'MALags',1,'D',1,... 'Seasonality',12); EstMdl2 = estimate(Mdl2,y,'X',[X0; X]);
ARIMAX(0,1,1) Model Seasonally Integrated (Gaussian Distribution): Value StandardError TStatistic PValue __________ _____________ __________ __________ Constant 0 0 NaN NaN MA{1} -0.40711 0.084387 -4.8242 1.4053e-06 Beta(1) -0.002577 0.025168 -0.10239 0.91845 Beta(2) -0.0057769 0.031885 -0.18118 0.85623 Beta(3) -0.0022034 0.030527 -0.072179 0.94246 Beta(4) 0.00094737 0.019867 0.047686 0.96197 Beta(5) -0.0012146 0.017981 -0.067551 0.94614 Beta(6) 0.00487 0.018374 0.26505 0.79097 Beta(7) -0.0087944 0.015285 -0.57535 0.56505 Beta(8) 0.0048346 0.012484 0.38728 0.69855 Beta(9) 0.001437 0.018245 0.078758 0.93722 Beta(10) 0.009274 0.014751 0.62869 0.52955 Beta(11) 0.0073665 0.0105 0.70158 0.48294 Beta(12) 0.00098841 0.014295 0.069146 0.94487 Variance 0.0017715 0.00024657 7.1848 6.7329e-13
Подобранная модель
где iid обычно распределенный ряд со средним 0 и отклонением 0.0017 и - вектор-столбец со значениями Beta1
- Beta12
. Обратите внимание, что оценки MA{1}
и Variance
между Mdl1
и Mdl2
не равны.
Использование forecast
прогнозировать обе модели 41 периоды в будущем с июля 1957 года. Постройте график выборки удержания с помощью этих прогнозов.
yF1 = forecast(EstMdl1,41,y); yF2 = forecast(EstMdl2,41,y,'X0',X(1:103,:),'XF',X(104:end,:)); l1 = plot(100:T,dat(100:end),'k','LineWidth',3); hold on l2 = plot(104:144,yF1,'-r','LineWidth',2); l3 = plot(104:144,yF2,'-b','LineWidth',2); hold off title('Passenger Data: Actual vs. Forecasts') xlabel('Month') ylabel('Logarithm of Monthly Passenger Data') legend({'Observations','Polynomial Forecast',... 'Regression Forecast'},'Location','NorthWest')
Хотя они переоценивают наблюдения удержания, прогнозы обеих моделей почти эквивалентны. Одно из основных различий моделей заключается в том, что EstMdl1
является более парсимонным, чем EstMdl2
.
Ссылки:
Box, G. E. P., G. M. Jenkins, and G. C. Reinsel. Анализ временных рядов: прогнозирование и управление. 3-й эд. Englewood Cliffs, Нью-Джерси: Prentice Hall, 1994.