Estoy usando el método arima del paquete de estadísticas de R con mi serie temporal de 17376 elementos. Mi objetivo es obtener el valor del criterio AIC, he observado en mi primera prueba esto:
ts <- arima(serie[,1], order = c(2,1,1), seasonal = list(order=c(2,0,1),period = 24),
method = "CSS", optim.method = "BFGS",)
> ts$coef
ar1 ar2 ma1 sar1 sar2 sma1
0.8883730 -0.0906352 -0.9697230 1.2047580 -0.2154847 -0.7744656
> ts$aic
[1] NA
Como puede ver, AIC no está definido. Sobre AIC, "Ayuda" en R dice que solo se puede usar con "ML". Sin embargo, sucede:
> ts <- arima(serie[,1], order = c(2,1,1), seasonal = list(order=c(2,0,1),period = 24),
method = "ML", optim.method = "BFGS",)
Error en optim(init[mask], armafn, method = optim.method, hessian = TRUE, :
non-finite finite-difference value [1]
Plus: warning messages lost
In log(s2) : There have been NaNs
No entiendo lo que está pasando. También me gustaría saber más sobre el parámetro "método de ajuste".
r
time-series
forecasting
arima
Cyberguille
fuente
fuente
optim.control
argumento) tendría una buena oportunidad de evitar este problema. No he probado esto porque no proporciona un ejemplo reproducible de la dificultad.Respuestas:
Ajustar el modelo ARIMA con máxima verosimilitud (método = "ML") requiere optimizar (minimizar) la probabilidad logarítmica negativa del modelo ARIMA sobre los parámetros. Esto resulta ser un problema de optimización restringido ya que los parámetros deben dar como resultado un modelo estacionario. Esta restricción no lineal se explica con la probabilidad de registro negativa que devuelve Inf (infinito) si la restricción no se cumple. Si el MLE está cerca del límite de la evaluación de restricción de la probabilidad logarítmica negativa cerca del MLE podría devolver el infinito. Como el hessian se obtiene con diferenciación numérica mediante la evaluación de la probabilidad logarítmica negativa cerca del MLE, esto puede dar como resultado el error de diferencia finita no finita que obtuvo. Entonces, si no se requiere el hessian, ponga hessian = FALSE. De otra manera,
fuente
Editado: si votas en contra, ¿puedes explicar por qué? Soy nuevo aqui.
Tengo el mismo problema Miré en línea y encontré una solución sugerida en otro lugar en Cross Validated. Pensé que compartiría aquí en caso de que alguien lo quisiera.
Acabo de agregar un "método =" CSS "" a mi modelo y funcionó. Por ejemplo:
Aquí está la referencia:
auto.arima y Arima (paquete de pronóstico)
fuente
Parece que tienes problemas con la convergencia de algoritmos. Esto sucede a veces con la optimización numérica.
Aquí hay un enlace al artículo de Wikipedia sobre este método de optimización en particular:
http://en.wikipedia.org/wiki/Broyden%E2%80%93Fletcher%E2%80%93Goldfarb%E2%80%93Shanno_algorithm
fuente