Introducción
Mi objetivo es pronosticar las tasas de crecimiento anual para una serie de indicadores macroeconómicos (denotar uno por ) Una de las tareas es probar el rendimiento de pronóstico de modelos de series temporales rivales con y sin variables exógenas (, una matriz). La lista de modelos rivales incluye:
- Modelo AR (I) MA (es poco probable que las tasas de crecimiento anual tengan "unidad Roo", aunque esta última se supone o se prueba)
- modelo de regresión lineal con errores ARMA
- modelo de variable dependiente rezagada (modelo autorregresivo con variables exógenas)
- modelo de regresión lineal
Dónde se supone que es un ruido blanco fuerte, varianza constante media cero en el proceso; y son autorregresivos (de orden ) y media móvil (de orden ) polinomios con - un operador de retroceso (retraso).
Tenga en cuenta que el objetivo principal y único es pronosticar el rendimiento, por lo que cualquier propiedad "buena" de las estimaciones de parámetros es una preocupación secundaria. Todo lo que necesito es probar el pronosticador más parsimonioso y robusto para las condiciones iniciales. La decisión se tomará con una de las accuracy()
opciones, pero primero necesito obtener el material para la comparación.
Los modelos 1. y 2. se estiman auto.arima()
con el "CSS-ML"
método de estimación predeterminado . Los modelos 3. y 4. se estiman por mínimos cuadrados ordinarios ( lm()
). es sobre cuarteles.
Enfoques probados hasta ahora
Para hacer los residuos con cuchilla de gato se ha implementado el primer enfoque denotado por "rodar". A partir de una submuestra de datos de series temporales factiblemente grande, se estiman los parámetros y seEl pronóstico anticipado lo realiza la predict()
función (EDITAR: es la misma sugerencia que en la primera parte Respuesta de Rob a la segunda pregunta). Después de eso, se agrega un punto y se repiten los pasos de estimación \ predicción.
Un punto débil de tales experimentos es que el número de tics de tiempo (tamaño de muestra) utilizado para estimar los parámetros es diferente. Si bien me gustaría probar la robustez de las condiciones iniciales, manteniendo el tamaño de la muestra para la estimación fija.
Teniendo esto en cuenta, traté de establecer varios valores posteriores (EDITAR: para el intervalo ) en siendo valores perdidos (NA). En los modelos 2.-4. esto también implica eliminar las filas subsiguientes correspondientes en la matriz de datos. La predicción para 3. y 4. es directa (lo mismo predict()
con omitidolas filas de datos funcionan bien). Todas mis preocupaciones son sobre los modelos 1. y 2.
Con solo el AR () parte las predicciones se hacen secuencialmente . Pero con la presencia de MA () uno no podría (?) usar los parámetros estimados directamente. Del capítulo 3.3 de Brockwell y Davis "Introducción a las series de tiempo y pronósticos" se deduce que se necesita un algoritmo de innovación para estimar recursivamentedel sistema específico de ecuaciones que involucra parámetros estimados autorregresivos y promedio móvil. EDITAR: estos los parámetros se usan para hacer la predicción ARMA, no los parámetros estimados originalmente . Sin embargo, se observa en el mismo capítulo que se acerca asintóticamente Si el proceso es invertible. No es evidente que 30-40 puntos sean suficientes para que el resultado asintótico se use incluso si es invertible.
Notas: no quiero restringir a cero, ya que no lo estoy haciendo en pronósticos verdaderos fuera de muestra. EDITAR: tampoco es que no sea un problema de imputación de valores faltantes, sino un experimento de pronóstico, que no se supone que la trayectoria puentee dos submuestras al imputar los valores faltantes.
Preguntas
- ¿
auto.arima()
Funciona correctamente con la presencia de valores faltantes dentro de la muestra? [Ya respondido por Rob.] - (La parte realmente crucial de esta publicación) Cómo pronosticar correctamente (NO imputar) estos puntos perdidos del modelo ARMA cuando ambos y ? (Espero que haya formas implementadas en el lenguaje R, pero simplemente me falta algo).
EDITAR: dado que los parámetros para las partes ARMA se estiman correctamente, ¿podría reorganizar legalmente el objeto arima para incluir los parámetros estimados y los datos solo para la primera submuestra y luego usar una función de predicción?
EDIT2: He intentado modificar la mod
estructura estimada : el pronóstico resultante de predict.Arima
es idéntico (diferencias de doble precisión) al pronóstico donde uso los coeficientes estimados MA y AR que predicen directamente como Sin KalmanForecast()
. Esto era de esperarse ya que la representación del espacio de estado se suministra con la misma estimaciónno . Entonces, la única pregunta que queda es la diferencia entre y importante para influir en los pronósticos puntuales? Espero que la respuesta sea negativa.
fuente
itsmr
biblioteca, la implementación del pronóstico del proceso ARMA parte para los modelos 1. y 2. requiere laarima
sugiere que el residual no es cero, es decirArima
objeto estimado entonces, antes de hacer el pronóstico en navajas? ¿Tengo que hacer lo mismo para las predicciones ordinariasArima
?itsmr
o aumentar la intersección paraArima
asegurar que los residuos sean de media cero.Respuestas:
No entiendo porque piensasq>0 Es un problema para la predicción. Es bastante fácil pronosticar utilizando un modelo ARIMA con términos MA y no necesita utilizar el algoritmo de innovaciones de Brockwell y Davis. Ese algoritmo es útil para la estimación ; en particular, para obtener valores iniciales al optimizar la probabilidad.
Para responder a sus preguntas específicas:
auto.arima()
llamadasarima()
que utilizan una representación de espacio de estado para calcular la probabilidad. Los valores perdidos se manejan naturalmente en un formato de espacio de estado. Entonces, sí, se manejan correctamente.Los valores históricos que faltan no se estiman por
arima()
. Si desea pronosticarlos (es decir, utilizando solo datos pasados), simplemente ajuste un modelo hasta el comienzo de la secuencia que falta y luego pronostique a partir de ella. Si desea estimarlos (utilizando datos antes y después), necesitaría usar un suavizador de Kalman basado en el modelo de espacio de estado equivalente. Un dulce de azúcar alternativo que da casi los mismos resultados es promediar las predicciones usando datos hasta los últimos datos no perdidos con los backcasts usando datos hasta los primeros datos no perdidos después de la secuencia faltante.fuente