Интерпретация и воспроизведение выбора модели auto.arima в R

avatar
Alex
8 апреля 2018 в 09:35
1144
1
0

В RStudio я запускаю auto.arima для встроенных данных авиапассажиров (AirPassengers). Данные, кажется, имеют мультипликативную тенденцию. Результаты прогнозирования кажутся довольно точными.

enter image description here

# Load the corresponging library.
library(forecast)

# Save the default parameters.
defaultPar <- par(no.readonly = TRUE)

# Prepare a graph of four (2x2) subgraphs
par(mfrow = c(3, 1))

# Fit the model. Use the built in AirPassengers data.
modelAA <- auto.arima(AirPassengers)

plot(AirPassengers, 
     main = 'Air passengers', 
     col = 'purple',
     ylab = 'Passengers number', 
     xlab = 'Year')

plot(forecast(modelAA, 24), 
     main = 'Air passengers + auto.arima forecasting', 
     col = 'red',
     ylab = 'Passengers number', 
     xlab = 'Year')

qqnorm(modelAA$residuals, col = 'red')
qqline(modelAA$residuals, col = 'green')

# Restore the default parameters.
par(defaultPar)

Как видно из приведенного ниже примера кода, автоматическое прогнозирование ARIMA выбрало следующие модели: (2, 1, 1)(0, 1, 0)[12].

print(modelAA)
Series: AirPassengers 
ARIMA(2,1,1)(0,1,0)[12] 

Coefficients:
         ar1     ar2      ma1
      0.5960  0.2143  -0.9819
s.e.  0.0888  0.0880   0.0292

sigma^2 estimated as 132.3:  log likelihood=-504.92
AIC=1017.85   AICc=1018.17   BIC=1029.35

Как интерпретировать автоматический выбор (2, 1, 1)(0, 1, 0)[12] и воспроизвести его, вызвав arima(x, order = c()...)? Спасибо.

Источник

Ответы (1)

avatar
myincas
8 апреля 2018 в 10:13
0

Это сезонная модель аримы. Вы можете получить подробную информацию от введите описание ссылки здесь.

enter image description here

вы должны установить пункты order/sensonal/period где period = 12 при вызове arima function (x, order = c(0L, 0L, 0L), seasonal = list(order = c(0L, 0L, 0L), period = NA), xreg = NULL, include.mean = TRUE, transform.pars = TRUE, fixed = NULL, init = NULL, method = c("CSS-ML", "ML", "CSS"), n.cond, SSinit = c("Gardner1980", "Rossignol2011"), optim.method = "BFGS", optim.control = list(), kappa = 1e+06).

Alex
8 апреля 2018 в 11:39
0

Кажется, работает. Следующий вызов функции дал желаемый результат. modelA <- arima (AirPassengers, порядок = c (2, 1, 1), сезонный = список (порядок = c (0, 1, 0), период = 12))