7 votos

¿Por qué `arima()` y `Arima()` dan diferentes AIC y sigma2 mientras que dan los mismos coeficientes y la misma verosimilitud?

Este problema se produjo varias veces cuando estaba tratando de encontrar los mejores parámetros para los modelos ARIMA en R. He aquí un ejemplo:

Mis datos son:

22 41 34 29 27 41 37 17 40 38 31 25 27 30 36 42 26 31 28 20 36 37 39 29 53 59 43 36 33 43 33 17 43 42 52 44 45 51 66 45 38 41 37 37 52 55 43 40 61 45 71 57 66 85 85 37 51 58 50 56 47 63 89 57 54 76 73 51 82 119 108 86

Leo mis datos y los transformo en objeto ts:

data <- read.table('test_data.txt')
data <- as.data.frame(t(data))
ts.test <- ts(data, start = c(2014, 1), frequency = 12)

Intento encontrar los mejores parámetros utilizando auto.arima() de una variable exógena tt :

tt <- seq(length(ts.test))
auto.arima(ts.test, xreg = tt)

El resultado es el siguiente:

## Series: ts.test 
## Regression with ARIMA(0,0,1)(2,0,0)[12] errors 
## 
## Coefficients:
##          ma1    sar1    sar2  intercept    xreg
##       0.5386  0.2667  0.2558    21.7004  0.7458
## s.e.  0.0951  0.1298  0.1515     5.3415  0.1128
## 
## sigma^2 estimated as 132.9:  log likelihood=-277.4
## AIC=566.79   AICc=568.09   BIC=580.45

Y cuando lo intento con Arima() :

Arima(ts.test, xreg = tt, order = c(0, 0, 1),
      seasonal = list(order = c(2, 0, 0), period = 12))

Da los mismos resultados con auto.arima() en términos de $\sigma^2$ y el AIC, así como la probabilidad:

## Series: ts.test 
## Regression with ARIMA(0,0,1)(2,0,0)[12] errors 

## Coefficients:
##          ma1    sar1    sar2  intercept    xreg
##       0.5386  0.2667  0.2558    21.7004  0.7458
## s.e.  0.0951  0.1298  0.1515     5.3415  0.1128
## 
## sigma^2 estimated as 132.9:  log likelihood=-277.4
## AIC=566.79   AICc=568.09   BIC=580.45

Pero cuando intento encajarlo con arima() :

arima(ts.test, xreg = tt, order = c(0, 0, 1),
      seasonal = list(order = c(2, 0, 0), period = 12))

Me da:

## Call:
## arima(x = ts.test, order = c(0, 0, 1), seasonal = list(order = c(2, 0, 0), period = 12), xreg = tt)
## 
## Coefficients:
##          ma1    sar1    sar2  intercept    xreg
##       0.5386  0.2667  0.2558    21.7004  0.7458
## s.e.  0.0951  0.1298  0.1515     5.3415  0.1128
## 
## sigma^2 estimated as 123.6:  log likelihood = -277.4,  aic = 564.79

Obsérvese que las 3 funciones dan los mismos parámetros y sus errores estándar, pero el arima() da diferentes $\sigma^2$ y un AIC diferente (siempre aumentado en 2 con respecto al otro AIC) mientras que la probabilidad sigue siendo la misma.

¿Alguien puede dar una explicación? Muchas gracias.

10voto

Senseful Puntos 116

stats::arima() estimaciones $\sigma^2$ utilizando el MLE de la varianza de las innovaciones, mientras que forecast::Arima() utiliza la estimación insesgada $\sum e_i^2/(n-k)$ donde $n$ es el número de observaciones disponibles y $k$ es el número de parámetros estimados.

stats::arima() no cuenta $\sigma^2$ como parámetro en el cálculo del AIC, mientras que forecast::Arima() lo cuenta. Burnham y Anderson (Springer, 2002) recomiendan incluir $\sigma^2$ según Arima() .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X