В этом примере показано, как задать сезонную модель ARIMA с помощью arima
. Временные ряды являются ежемесячными международными числами авиапассажира от 1 949 до 1960.
Загрузите набор данных авиакомпании, и затем постройте естественный журнал ежемесячных пассажирских общих количеств.
load('Data_Airline.mat') y = log(Data); T = length(y); figure plot(dates,y) xlim([1,T]) datetick('x','mmmyy') axis tight title('Log Airline Passengers') ylabel('(thousands)')
Данные выглядят неустановившимися с линейным трендом и сезонной периодичностью.
Вычислите differenced ряд, , где исходные преобразованные в журнал данные. Постройте differenced ряд.
A1 = LagOp({1,-1},'Lags',[0,1]); A12 = LagOp({1,-1},'Lags',[0,12]); dY = filter(A1*A12,y); figure plot(dY) title('Differenced Log Airline Passengers')
differenced ряд кажется стационарным.
figure
autocorr(dY,'NumLags',50)
Демонстрационный ACF differenced ряда показывает значительную автокорреляцию в задержках, которые являются множителями 12. Существует также потенциально значительная автокорреляция в меньших задержках.
Поле, Дженкинс и Рейнсель предлагают мультипликативную сезонную модель,
для этого набора данных (Бокс и др., 1994).
Задайте эту модель.
Mdl = arima('Constant',0,'D',1,'Seasonality',12,... 'MALags',1,'SMALags',12)
Mdl = arima with properties: Description: "ARIMA(0,1,1) Model Seasonally Integrated with Seasonal MA(12) (Gaussian Distribution)" Distribution: Name = "Gaussian" P: 13 D: 1 Q: 13 Constant: 0 AR: {} SAR: {} MA: {NaN} at lag [1] SMA: {NaN} at lag [12] Seasonality: 12 Beta: [1×0] Variance: NaN
Свойство P
равно 13
, соответствие сумме несезонных и сезонных степеней дифференцирования (1 + 12). Свойство Q
также равно 13
, соответствие сумме степеней несезонных и сезонных полиномов MA (1 + 12). Параметры, которые должны быть оценены, имеют значение NaN
.
Ссылки:
Поле, G. E. P. Г. М. Дженкинс и Г. К. Рейнсель. Анализ Временных Рядов: Прогнозирование и Управление. 3-й редактор Englewood Cliffs, NJ: Prentice Hall, 1994.
LagOp
| arima
| autocorr
| filter