Выбор модели поля-Jenkins

Этот пример показывает, как использовать методологию Поля-Jenkins, чтобы выбрать модель ARIMA. Временные ряды являются журналом ежеквартальный австралийский Индекс потребительских цен (CPI), измеренный от 1 972 и 1991.

Загрузите данные

Загрузите и отобразите австралийские данные о CPI на графике.

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

Постройте демонстрационную автокорреляционную функцию (ACF) и частичная автокорреляционная функция (PACF) для серии CPI.

figure
subplot(2,1,1) 
autocorr(y)
subplot(2,1,2)
parcorr(y)

Значительный, линейно затухающий демонстрационный ACF указывает на неустановившийся процесс.

Различие данные

Возьмите первое различие данных и постройте differenced ряд.

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')

Дифференцирование удаляет линейный тренд. differenced ряд кажется более стационарным.

Постройте демонстрационный ACF и PACF ряда Differenced

Постройте демонстрационный ACF и PACF differenced ряда, чтобы искать поведение, более сопоставимое со стационарным процессом.

figure
subplot(2,1,1)
autocorr(dY)
subplot(2,1,2)
parcorr(dY)

Демонстрационный ACF differenced ряда затухает более быстро. Демонстрационный PACF убегает после задержки 2. Это поведение сопоставимо с авторегрессивной моделью (AR(2)) второй степени.

Задайте и оцените ARIMA (2,1,0) модель

Задайте, и затем оцените, модель ARIMA (2,1,0) для журнала ежеквартальный австралийский CPI. Эта модель имеет одну степень несезонного дифференцирования и двух задержек 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.02627
    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

Ссылки:

Поле, G. E. P. Г. М. Дженкинс и Г. К. Рейнсель. Анализ timeseries: Прогнозирование и Управление. 3-й редактор Englewood Cliffs, NJ: Prentice Hall, 1994.

Смотрите также

Приложения

Объекты

Функции

Связанные примеры

Больше о