2012-05-15 18 views
7

No entiendo muy bien la sintaxis de cómo forecast() aplica regresores externos en library(forecast) en R.De Auto.arima a pronóstico en R

Mi ajuste es el siguiente:

fit <- auto.arima(Y,xreg=factors)

donde Y es un objeto timeSeries 100 x 1 y los factores es un objeto timeSeries 100 x 5.

Cuando voy a pronosticar, aplico ...

forecast(fit, h=horizon)

Y Me aparece un error:

Error in forecast.Arima(fit, h = horizon) : No regressors provided

es lo que quiere de mí, volver a sumar los xregressors a partir del ajuste? Pensé que estos estaban incluidos en el objeto fit como fit$xreg. ¿Significa eso que está pidiendo valores futuros de los xregresores, o que debería repetir los mismos valores que usé en el conjunto de ajustes? La documentación no cubre el significado de xreg en el paso de pronóstico.

yo creo que todo esto significa que debe utilizar

forecast(fit, h=horizon,xreg=factors)

o

forecast(fit, h=horizon,xreg=fit$xreg)

que da el mismo resultado. Pero no estoy seguro de si el paso de pronóstico interpreta los factores como valores futuros, o apropiadamente como los anteriores. Entonces,

  1. ¿Esto está haciendo un pronóstico de valores puramente pasados, como espero?
  2. ¿Por qué tengo que especificar los valores xreg dos veces? No se ejecuta si los excluyo, por lo que no se comporta como una opción.
+1

Si pudiera publicar algún código que pudiera reproducir el problema, es mucho más fácil para nosotros ayudarle. –

+0

Veo lo que quiere decir, pero mi código es realmente solo las dos líneas repetidas arriba, 'auto.arima()' y 'forecast()'. Mi pregunta es acerca de cómo la llamada a la función de pronóstico está interpretando los regresores externos. – Mittenchops

+0

todavía, no tengo sus datos (o algunos datos de ejemplo para el caso) que pueden reproducir el mensaje de error que recibe. –

Respuesta

12

Corrígeme si me equivoco, pero creo que puede que no entiendas completamente cómo funciona el modelo ARIMA con regresores.

Cuando pronostica con un modelo ARIMA simple (sin regresores), simplemente usa valores pasados ​​de su serie de tiempo para predecir valores futuros. En dicho modelo, podría simplemente especificar su horizonte, y le daría un pronóstico hasta ese horizonte.

Cuando usa regresores para construir un modelo ARIMA, debe incluir valores futuros de los regresores para pronosticar. Por ejemplo, si utilizó la temperatura como regresor y estaba prediciendo la incidencia de la enfermedad, entonces necesitaría valores de temperatura futuros para predecir la incidencia de la enfermedad.

De hecho, la documentación hace habla acerca de xreg específicamente. Busque ?forecast.Arima y mire los argumentos h y xreg. Verá que si se usa xreg, se ignorará h. ¿Por qué?Porque si su función usa xreg, entonces necesita para pronosticar.

Por lo tanto, en su código, h simplemente se ignoró cuando incluyó xreg. Como acaba de utilizar los valores que utilizó para ajustarse al modelo, solo le proporcionó todas las predicciones para el mismo conjunto de regresores como si estuvieran en el futuro.

+0

Tiene toda la razón. No entendí que esto requiriera valores futuros, porque estos estaban más allá de mi conjunto de información. Veo cómo estas opciones me dan flexibilidad para pronosticar externamente mi ruta de regresor con diferentes suposiciones. Supongo que mi suposición debe haber sido que el pronóstico() me daría un camino futuro al azar. La previsión de VAR() probablemente se adecue mejor a mis necesidades que los regresores externos. ¡Gracias! – Mittenchops