Mis datos son una serie temporal de población ocupada, L, y el lapso de tiempo, año.
n.auto=auto.arima(log(L),xreg=year)
summary(n.auto)
Series: log(L)
ARIMA(2,0,2) with non-zero mean
Coefficients:
ar1 ar2 ma1 ma2 intercept year
1.9122 -0.9567 -0.3082 0.0254 -3.5904 0.0074
s.e. NaN NaN NaN NaN 1.6058 0.0008
sigma^2 estimated as 1.503e-06: log likelihood=107.55
AIC=-201.1 AICc=-192.49 BIC=-193.79
In-sample error measures:
ME RMSE MAE MPE MAPE
-7.285102e-06 1.225907e-03 9.234378e-04 -6.836173e-05 8.277295e-03
MASE
1.142899e-01
Warning message:
In sqrt(diag(x$var.coef)) : NaNs produced
¿Por qué pasó esto? ¿Por qué auto.arima selecciona el mejor modelo con error estándar de estos coeficientes ar * ma * Not a Number? ¿Es este modelo seleccionado válido después de todo?
Mi objetivo es estimar el parámetro n en el modelo L = L_0 * exp (n * año). ¿Alguna sugerencia de un mejor enfoque?
TIA
datos:
L <- structure(c(64749, 65491, 66152, 66808, 67455, 68065, 68950,
69820, 70637, 71394, 72085, 72797, 73280, 73736, 74264, 74647,
74978, 75321, 75564, 75828, 76105), .Tsp = c(1990, 2010, 1), class = "ts")
year <- structure(1990:2010, .Tsp = c(1990, 2010, 1), class = "ts")
L
Time Series:
Start = 1990
End = 2010
Frequency = 1
[1] 64749 65491 66152 66808 67455 68065 68950 69820 70637 71394 72085 72797
[13] 73280 73736 74264 74647 74978 75321 75564 75828 76105
r
regression
arima
Ivy Lee
fuente
fuente
dput(L)
y pegue la salida. Esto hace que la replicación sea muy fácil.Respuestas:
auto.arima()
toma algunos atajos para acelerar el cálculo, y cuando da un modelo que parece sospechoso, es una buena idea desactivar esos atajos y ver qué obtienes. En este caso:Este modelo es un poco mejor (un AIC más pequeño, por ejemplo).
fuente
approximation=FALSE
ystepwise=FALSE
todavía produce NaN para SE de coeficientes.Su problema surge de una sobreespecificación. Un modelo simple de primera diferencia con un AR (1) es bastante suficiente. No se requiere estructura MA ni transformación de potencia. También podría simplemente modelar esto como un segundo modelo de diferencia ya que el coeficiente ar (1) está cerca de 1.0. ¡Una gráfica de Real / ajuste / pronóstico es y una gráfica residual con ecuación! ingrese la descripción de la imagen aquíEn resumen, la estimación está sujeta a la especificación del modelo, que en este caso se encuentra queriendo ["mene mene tekel upharsin"]. En serio, sugiero que se familiarice con las estrategias de identificación del modelo y no intente hundir sus modelos en la cocina con una estructura injustificada. A veces menos es más ! La parsimonia es un objetivo! Espero que esto ayude ! Para responder más a sus preguntas "¿Por qué auto.arima selecciona el mejor modelo con error estándar de estos coeficientes ar * ma * No es un número? La respuesta probable es que la solución de espacio de estado no es todo lo que podría ser debido a la modelos supuestos que intenta. Pero eso es solo mi suposición. La verdadera causa de la falla podría ser su suposición de un log xform. Las transformaciones son como las drogas ... algunas son buenas para usted y otras no son buenas para usted. Las transformaciones de potencia SOLO deberían usarse para desacoplar el valor esperado de la desviación estándar de los residuos. Si hay un enlace, entonces una transformación Box-Cox (que incluye registros) podría ser apropiada. Hacer una transformación desde detrás de las orejas puede no ser una buena idea.
¿Es este modelo seleccionado válido después de todo? Definitivamente no !
fuente
Me he enfrentado a problemas similares. Por favor, intente jugar con optim.control y optim.method. Estos NaN son sqrt de valores negativos de elementos diagonales de la matriz de Hesse. El ajuste de ARIMA (2,0,2) es un problema no lineal y la optimización parecía converger en un punto de silla de montar (donde el gradiente es cero, pero la matriz de Hesse no está definida positivamente) en lugar del máximo de probabilidad.
fuente