Jack-cuchillo con modelos de series temporales

8

Introducción

Mi objetivo es pronosticar las tasas de crecimiento anual para una serie de indicadores macroeconómicos (denotar uno por Yt) Una de las tareas es probar el rendimiento de pronóstico de modelos de series temporales rivales con y sin variables exógenas (Xt, una T×kmatriz). La lista de modelos rivales incluye:

  1. Modelo AR (I) MA (es poco probable que las tasas de crecimiento anual tengan "unidad Roo", aunque esta última se supone o se prueba)
    A(L)Yt=μ+B(L)εt
  2. modelo de regresión lineal con errores ARMA
    Yt=Xtβ+ηt,  A(L)ηt=B(L)εt
  3. modelo de variable dependiente rezagada (modelo autorregresivo con variables exógenas)
    A(L)Yt=Xtβ+εt
  4. modelo de regresión lineal
    Yt=Xtβ+εt

Dónde εt se supone que es un ruido blanco fuerte, varianza constante media cero en el proceso; A(L) y B(L) son autorregresivos (de orden p) y media móvil (de orden q) polinomios con L - 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()).T es sobre 40 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 sehEl 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 k+p+q<t0<t1<Th+1) en Ytsiendo valores perdidos (NA). En los modelos 2.-4. esto también implica eliminar las filas subsiguientes correspondientes en la matriz de datosXt. La predicción para 3. y 4. es directa (lo mismo predict()con omitidoXtlas filas de datos funcionan bien). Todas mis preocupaciones son sobre los modelos 1. y 2.

Con solo el AR (p) parte las predicciones se hacen secuencialmente Yt+1|t=A^(L)Yt. Pero con la presencia de MA (q) 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 recursivamenteθn,jdel sistema específico de ecuaciones que involucra parámetros estimados autorregresivos y promedio móvil. EDITAR: estosθn,j los parámetros se usan para hacer la predicción ARMA, no los parámetros estimados originalmente θj. Sin embargo, se observa en el mismo capítulo queθn,j se acerca asintóticamente θjSi 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 qa 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

  1. ¿ auto.arima()Funciona correctamente con la presencia de valores faltantes dentro de la muestra? [Ya respondido por Rob.]
  2. (La parte realmente crucial de esta publicación) Cómo pronosticar correctamente (NO imputar) estos puntos perdidos del modelo ARMA cuando ambos p>0 y q>0? (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 modestructura estimada : el pronóstico resultante de predict.Arimaes idéntico (diferencias de doble precisión) al pronóstico donde uso los coeficientes estimados MA y AR que predicenYt+1|t directamente como A^(L)(YtXtβ^)+Xtβ^+B^(L)ε^tSin KalmanForecast(). Esto era de esperarse ya que la representación del espacio de estado se suministra con la misma estimaciónθjno θn,j. Entonces, la única pregunta que queda es la diferencia entreθj y θn,jimportante para influir en los pronósticos puntuales? Espero que la respuesta sea negativa.

Dmitrij Celov
fuente
En la itsmrbiblioteca, la implementación del pronóstico del proceso ARMA parte para los modelos 1. y 2. requiere laηt ser cero media (ya que εtse supone que es cero media). Sin embargo, el resultado de arimasugiere que el residual no es cero, es decirYtXtβ^No es cero-media. ¿Necesito aumentar el término de intercepción en el Arimaobjeto estimado entonces, antes de hacer el pronóstico en navajas? ¿Tengo que hacer lo mismo para las predicciones ordinarias Arima?
Dmitrij Celov
PD: las estimaciones son casi idénticas (en el sentido de desviaciones de doble precisión), si cualquiera de las dos configuro μ=0en itsmro aumentar la intersección para Arimaasegurar que los residuos sean de media cero.
Dmitrij Celov

Respuestas:

4

No entiendo porque piensas q>0Es 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:

  1. auto.arima()llamadas arima()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.

  2. 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.

Rob Hyndman
fuente