В этом примере показано, как выбрать задержки для модели ARIMA путем сравнения значений AIC предполагаемых моделей с помощью приложения Econometric Modeler. Пример также показывает, как сравнить прогнозирующую производительность нескольких моделей, у которых случаются лучшие судороги в выборке в командной строке. Набор данных Data_Airline.mat
содержит ежемесячные количества авиапассажиров.
В командной строке загрузите Data_Airline.mat
набор данных.
load Data_Airline
Чтобы сравнить прогнозирующую производительность позже, зарезервируйте прошлые два года данных как выборка затяжки.
fHorizon = 24; HoldoutTable = DataTable((end - fHorizon + 1):end,:); DataTable((end - fHorizon + 1):end,:) = [];
В командной строке откройте приложение Econometric Modeler.
econometricModeler
В качестве альтернативы откройте приложение из галереи Apps (см. Econometric Modeler).
Импортируйте DataTable
в приложение:
На вкладке Econometric Modeler, в разделе Import, нажатии кнопки.
В диалоговом окне Import Data, в столбце Import?, устанавливают флажок для DataTable
переменная.
Нажмите Import.
Переменная PSSG
появляется в Data Browser, и его график временных рядов появляется в окне рисунка Time Series Plot(PSSG).
Ряд показывает сезонный тренд, последовательную корреляцию и возможный экспоненциальный рост. Для интерактивного анализа последовательной корреляции смотрите, Обнаруживают Последовательную Корреляцию Используя Приложение Econometric Modeler.
Обратитесь к экспоненциальному тренду путем применяния логарифмического преобразования к PSSG
.
В Data Browser выберите PSSG
.
На вкладке Econometric Modeler, в разделе Transforms, нажимают Log.
Преобразованная переменная PSSGLog
появляется в Data Browser, и его график временных рядов появляется в окне рисунка Time Series Plot(PSSGLog).
Экспоненциальный рост, кажется, удален из ряда.
Поле, Дженкинс и Рейнсель предлагают SARIMA (0,1,1) × (0,1,1) 12 моделей без константы для PSSGLog
[1] (для получения дополнительной информации смотрите Оценку Мультипликативная Модель ARIMA Используя Приложение Econometric Modeler). Однако рассмотрите все комбинации ежемесячных моделей SARIMA, которые включают до двух сезонных и несезонных задержек MA. А именно, выполните итерации следующих шагов для каждой из девяти моделей формы SARIMA (0,1, q) × (0,1, q 12) 12, где q ∈ {0
,1,2
} и q 12 ∈ {
0
,1,2
}.
Для первой итерации:
Позвольте q = q 12 = 0.
С PSSGLog
выбранный в Data Browser, кликните по вкладке Econometric Modeler. В разделе Models кликните по стреле, чтобы отобразить галерею моделей.
В галерее моделей, в разделе ARMA/ARIMA Models, нажимают SARIMA.
В диалоговом окне SARIMA Model Parameters, на вкладке Lag Order:
Раздел Nonseasonal
Установите Degrees of Integration на 1
.
Установите Moving Average Order на 0
.
Снимите флажок Include Constant Term.
Раздел Seasonal
Установите Period на 12
указать на ежемесячные данные.
Установите Moving Average Order на 0
.
Установите флажок Include Seasonal Difference.
Нажмите Estimate.
Переименуйте новую переменную модели.
В Data Browser щелкните правой кнопкой по новой переменной модели.
В контекстном меню выберите Rename.
Введите SARIMA01
. Например, когда q
x01q12
q
= q12
= 0, переименуйте переменную в SARIMA010x010
.
В сводных данных модели (SARIMA01q
x01q12
) документ, в таблице Goodness of Fit, отмечает значение AIC. Например, для переменной SARIMA010x010
модели, AIC находится в этом рисунке.
Для следующей итерации, выбрал значения q и q 12. Например, q = 0 и q 12 = 1 для второй итерации.
В Data Browser щелкните правой кнопкой по SARIMA01
. В контекстном меню выберите Modify, чтобы открыть диалоговое окно SARIMA Model Parameters с текущими настройками для выбранной модели.q
x01q12
В диалоговом окне SARIMA Model Parameters:
В разделе Nonseasonal, набор Moving Average Order к q
.
В разделе Seasonal, набор Moving Average Order к q12
.
Нажмите Estimate.
После того, как вы завершите шаги, раздел Models Data Browser содержит девять предполагаемых моделей под названием SARIMA010x010
через SARIMA012x012
.
Получившиеся значения AIC находятся в этой таблице.
Модель | Имя переменной | AIC |
---|---|---|
SARIMA (0,1,0) × (0,1,0) 12 | SARIMA010x010 | -410.3520 |
SARIMA (0,1,0) × (0,1,1) 12 | SARIMA010x011 | -443.0009 |
SARIMA (0,1,0) × (0,1,2) 12 | SARIMA010x012 | -441.0010 |
SARIMA (0,1,1) × (0,1,0) 12 | SARIMA011x010 | -422.8680 |
SARIMA (0,1,1) × (0,1,1) 12 | SARIMA011x011 | -452.0039 |
SARIMA (0,1,1) × (0,1,2) 12 | SARIMA011x012 | -450.0605 |
SARIMA (0,1,2) × (0,1,0) 12 | SARIMA012x010 | -420.9760 |
SARIMA (0,1,2) × (0,1,1) 12 | SARIMA012x011 | -450.0087 |
SARIMA (0,1,2) × (0,1,2) 12 | SARIMA012x012 | -448.0650 |
Эти три модели, дающие к самым низким трем значениям AIC, являются SARIMA (0,1,1) × (0,1,1) 12, SARIMA (0,1,1) × (0,1,2) 12 и SARIMA (0,1,2) × (0,1,1) 12. Эти модели имеют лучшую экономную подгонку в выборке.
Экспортируйте модели с лучшими подгонками в выборке.
На вкладке Econometric Modeler, в разделе Export, нажатии кнопки.
В диалоговом окне Export Variables, в столбце Models, кликают по флажку Select для SARIMA011x011
, SARIMA011x012
, и SARIMA012x011
. Снимите флажок для любых других выбранных моделей.
Нажмите Export.
arima
объекты модели SARIMA011x011
, SARIMA011x012
, и SARIMA012x011
появитесь в MATLAB® Workspace.
В командной строке оцените прогнозы "два года вперед" для каждой модели.
f5 = forecast(SARIMA_PSSGLog5,fHorizon); f6 = forecast(SARIMA_PSSGLog6,fHorizon); f8 = forecast(SARIMA_PSSGLog8,fHorizon);
f5
, f6
, и f8
24 1 векторы, содержащие прогнозы.
Оцените среднеквадратичную погрешность предсказания (PMSE) для каждого из векторов прогноза.
logPSSGHO = log(HoldoutTable.Variables); pmse5 = mean((logPSSGHO - f5).^2); pmse6 = mean((logPSSGHO - f6).^2); pmse8 = mean((logPSSGHO - f8).^2);
Идентифицируйте модель, дающую к самому низкому PMSE.
[~,bestIdx] = min([pmse5 pmse6 pmse8],[],2)
SARIMA (0,1,1) × (0,1,1) 12 моделей выполняет лучший в выборке и из выборки.
[1] Поле, G. E. P. Г. М. Дженкинс и Г. К. Рейнсель. Анализ Временных Рядов: Прогнозирование и Управление. 3-й редактор Englewood Cliffs, NJ: Prentice Hall, 1994.