В этом примере показано, как использовать методологию Поля-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) для серии 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 ряда, чтобы искать поведение, более сопоставимое со стационарным процессом.
figure subplot(2,1,1) autocorr(dY) subplot(2,1,2) parcorr(dY)
Демонстрационный ACF differenced ряда затухает более быстро. Демонстрационный PACF убегает после задержки 2. Это поведение сопоставимо с авторегрессивной моделью (AR(2)) второй степени.
Задайте, и затем оцените, модель 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.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
Ссылки:
Поле, G. E. P. Г. М. Дженкинс и Г. К. Рейнсель. Анализ Временных Рядов: Прогнозирование и Управление. 3-й редактор Englewood Cliffs, NJ: Prentice Hall, 1994.