В этом примере показано, как использовать методологию Box-Jenkins для выбора модели ARIMA. Временные ряды - журнал квартальный индекс потребительских цен Австралии (ИПЦ), измеренный в 1972 и 1991 годах.
Загрузка и построение графика данных по ИПЦ Австралии.
load Data_JAustralian y = DataTable.PAU; T = length(y); figure plot(y) h1 = gca; h1.XLim = [0,T]; h1.XTick = 1:10:T; h1.XTickLabel = datestr(dates(1:10:T),17); title('Log Quarterly Australian CPI')
Серия нестационарная, с явным трендом к росту.
Постройте график функции автокорреляции (ACF) и функции частичной автокорреляции (PACF) для ряда CPI.
figure subplot(2,1,1) autocorr(y) subplot(2,1,2) parcorr(y)
Значительный, линейно распадающийся выборка ACF указывает на нестационарный процесс.
Возьмите первое различие данных и постройте график дифференцированного ряда.
dY = diff(y);
figure
plot(dY)
h2 = gca;
h2.XLim = [0,T];
h2.XTick = 1:10:T;
h2.XTickLabel = datestr(dates(2:10:T),17);
title('Differenced Log Quarterly Australian CPI')
Дифференцирование удаляет линейный тренд. Дифференцированный ряд выглядит более стационарным.
Постройте график выборки ACF и PACF дифференцированного ряда, чтобы искать поведение, более соответствующее стационарному процессу.
figure subplot(2,1,1) autocorr(dY) subplot(2,1,2) parcorr(dY)
Выборка ACF дифференцированного ряда распадается быстрее. PACF выборки отсекает после задержки 2. Это поведение согласуется с авторегрессионной (AR (2)) моделью второй степени .
Укажите, а затем оцените, модель ARIMA (2,1,0) для журнала квартального ИПЦ Австралии. Эта модель имеет одну степень несезонного дифференцирования и два AR-лага. По умолчанию инновационное распределение является Гауссовым с постоянным отклонением .
Mdl = arima(2,1,0); EstMdl = estimate(Mdl,y);
ARIMA(2,1,0) Model (Gaussian Distribution): Value StandardError TStatistic PValue __________ _____________ __________ __________ Constant 0.010072 0.0032802 3.0707 0.0021356 AR{1} 0.21206 0.095428 2.2222 0.026271 AR{2} 0.33728 0.10378 3.2499 0.0011543 Variance 9.2302e-05 1.1112e-05 8.3066 9.8491e-17
Оба коэффициента AR значительны на уровне 0,05 значимости.
Выведите невязки из подобранной модели. Проверяйте, что невязки обычно распределены и некоррелированы.
res = infer(EstMdl,y); figure subplot(2,2,1) plot(res./sqrt(EstMdl.Variance)) title('Standardized Residuals') subplot(2,2,2) qqplot(res) subplot(2,2,3) autocorr(res) subplot(2,2,4) parcorr(res) hvec = findall(gcf,'Type','axes'); set(hvec,'TitleFontSizeMultiplier',0.8,... 'LabelFontSizeMultiplier',0.8);
Невязки достаточно нормально распределены и некоррелированы.
Сгенерируйте прогнозы и приблизите 95% интервалы прогноза на ближайшие 4 года (16 кварталов).
[yF,yMSE] = forecast(EstMdl,16,y); UB = yF + 1.96*sqrt(yMSE); LB = yF - 1.96*sqrt(yMSE); figure h4 = plot(y,'Color',[.75,.75,.75]); hold on h5 = plot(78:93,yF,'r','LineWidth',2); h6 = plot(78:93,UB,'k--','LineWidth',1.5); plot(78:93,LB,'k--','LineWidth',1.5); fDates = [dates; dates(T) + cumsum(diff(dates(T-16:T)))]; h7 = gca; h7.XTick = 1:10:(T+16); h7.XTickLabel = datestr(fDates(1:10:end),17); legend([h4,h5,h6],'Log CPI','Forecast',... 'Forecast Interval','Location','Northwest') title('Log Australian CPI Forecast') hold off
Ссылки:
Box, G. E. P., G. M. Jenkins, and G. C. Reinsel. Анализ временных рядов: прогнозирование и управление. 3-й эд. Englewood Cliffs, Нью-Джерси: Prentice Hall, 1994.