Problema al definir el orden ARIMA

16

Esta es una publicación larga, así que espero que puedan tener paciencia conmigo, y corríjanme donde estoy equivocado.

Mi objetivo es producir un pronóstico diario basado en 3 o 4 semanas de datos históricos.

Los datos son datos de 15 minutos de la carga local de una de las líneas de un transformador. Tengo problemas para encontrar el orden modelo de un proceso ARIMA estacional. Considere la serie de tiempo de demanda de electricidad:

Serie temporal original http://i.share.pho.to/80d86574_l.png

Cuando las primeras 3 semanas se toman como un subconjunto y se diferencian, se calculan los siguientes gráficos ACF / PACF:

Subconjunto http://i.share.pho.to/5c165aef_l.png

Primera diferencia http://i.share.pho.to/b7300cc2_l.png

Estacional y primera diferencia http://i.share.pho.to/570c5397_l.png

Esto parece que la serie es un poco estacionaria. Pero la estacionalidad también podría ser semanal (ver Semana de diferencia estacional y diferencias de segundo orden [aquí] http://share.pho.to/3owoq , ¿qué opinas?)

Así que concluyamos que el modelo toma la forma de:

UNRyoMETROUN(pag,1,q)(PAG,1,Q)96

UNRyoMETROUN(0 0,1,4 4)(0 0,1,1)96

Series: x 
ARIMA(0,1,4)(0,1,1)[96] 

    Coefficients:
    ma1      ma2      ma3      ma4     sma1
    -0.2187  -0.2233  -0.0996  -0.0983  -0.9796
    s.e.   0.0231   0.0234   0.0257   0.0251   0.0804

    sigma^2 estimated as 364612:  log likelihood=-15138.91
    **AIC=30289.82   AICc=30289.87   BIC=30323.18**

UNRyoMETROUN(1,1,1)(2,0 0,2)96

Series: x 
ARIMA(1,1,1)(2,0,2)[96] 

    Coefficients:
    ar1      ma1    sar1    sar2     sma1     sma2
    0.7607  -1.0010  0.4834  0.4979  -0.3369  -0.4168
    s.e.  0.0163   0.0001  0.0033  0.0116   0.0216   0.0255

    sigma^2 estimated as 406766:  log likelihood=-15872.02
    **AIC=31744.99   AICc=31745.05   BIC=31784.25**

Lo que significa que no se aplica diferenciación estacional. Aquí están los residuos de ambos modelos. La estadística de Ljung Box da un valor p muy pequeño, lo que indica que todavía hay algo de autocorrelación presente (? Corríjame si estoy equivocado).

Previsión

Por lo tanto, para determinar cuál es mejor, una prueba de precisión fuera de la muestra es la mejor. Entonces, para ambos modelos, se realiza un pronóstico con 24 horas de anticipación que se compara entre sí. Los resultados son: auto.arima http://i.share.pho.to/5d1dd934_l.png manual modelo http://i.share.pho.to/7ca69c97_l.png

Auto:

                      ME     RMSE      MAE       MPE      MAPE      MASE        ACF1 Theil's U
Training set   -2.586653 606.3188 439.1367 -1.284165  7.599403 0.4914563 -0.01219792        NA
Test set     -330.144797 896.6998 754.0080 -7.749675 13.268985 0.8438420  0.70219229  1.617834

Manual

                       ME     RMSE      MAE        MPE      MAPE      MASE         ACF1 Theil's U
Training set 2.456596e-03 589.1267 435.6571 -0.7815229  7.509774 0.4875621 -0.002034122        NA
Test set     2.878919e+02 919.7398 696.0593  3.4756363 10.317420 0.7789892  0.731013599  1.281764

Preguntas

Como puede pensar, este es un análisis de las primeras tres semanas de un conjunto de datos. Estoy luchando mentalmente con las siguientes preguntas:

  1. ¿Cómo selecciono el mejor modelo ARIMA (probando todos los diferentes pedidos y comprobando el mejor MASE / MAPE / MSE? Donde la selección de la medición del rendimiento puede ser una discusión en sí misma ...)
  2. Si genero un nuevo modelo y pronóstico para cada pronóstico de día nuevo (como en el pronóstico en línea), ¿debo tener en cuenta la tendencia anual y cómo? (como en un subconjunto tan pequeño, supongo que la tendencia es insignificante)
  3. ¿Esperaría que el orden del modelo permanezca igual en todo el conjunto de datos, es decir, al tomar otro subconjunto me dará el mismo modelo?
  4. ¿Cuál es una buena manera, dentro de este método, de hacer frente a las vacaciones? ¿O se necesita ARIMAX con muñecos de vacaciones externos para esto?
  5. ¿Necesito usar el enfoque de la serie de Fourier para probar modelos con los seasonality=672que se discutieron en períodos estacionales largos ?
  6. Si es así, sería así fit<-Arima(timeseries,order=c(0,1,4), xreg=fourier(1:n,4,672)(donde la función fourier es como se define en la publicación del blog de Hyndman)
  7. ¿Se incluyen los componentes iniciales P y Q con la serie de Fourier?

La mayoría del conocimiento teórico obtenido de FPP , ¡cosas geniales!

Antes de asesorar sobre el uso de suavizado exponencial o regresión lineal (dinámica), también se está trabajando para comparar.

Datos

https://www.dropbox.com/sh/mzx61sskya5ze6x/Zq3A7Q6htH/trafo.txt

Código

data<-read.csv("file", sep=";")
load<-data[,3]

Eliminé los pocos valores cero con los valores de la semana anterior

stepback<-672
load[is.na(load)] <- 0 # Assumed no 0's in first 672 values!
idx <- which(load == 0)
idx <- idx[which(idx>stepback)] 
load[idx] <- load[idx-stepback] 

ED<-ts(load,start=0, end=c(760,96),frequency=96)
x<-window(ED,start=0, end=c(20,96))

También es posible publicar un ejemplo reproducible, pero esto hará que la publicación sea aún más larga, pero posible si es necesario. Entonces, si hay algo que debo proporcionar, hágamelo saber.

Peter Nijhuis
fuente

Respuestas:

9
  1. ¿Cómo selecciono el mejor modelo ARIMA (probando todos los diferentes pedidos y comprobando el mejor MASE / MAPE / MSE? Donde la selección de la medición del rendimiento puede ser una discusión en sí misma ...)

Las estimaciones de riesgo fuera de la muestra son el estándar de oro para la evaluación del desempeño y, por lo tanto, para la selección del modelo. Idealmente, realiza una validación cruzada para que sus estimaciones de riesgo se promedien sobre más datos. FPP explica un método de validación cruzada para series de tiempo. Ver Tashman para una revisión de otros métodos:

Tashman, LJ (2000). Pruebas de precisión de predicción fuera de muestra: análisis y revisión.International Journal of Forecasting, 16 (4), 437–450. doi: 10.1016 / S0169-2070 (00) 00065-0

Por supuesto, la validación cruzada lleva mucho tiempo y, por lo tanto, las personas a menudo recurren al uso de criterios en la muestra para seleccionar un modelo, como AIC, que es cómo auto.arima selecciona el mejor modelo. Este enfoque es perfectamente válido, si no es tan óptimo.

  1. Si genero un nuevo modelo y pronóstico para cada pronóstico de día nuevo (como en el pronóstico en línea), ¿debo tener en cuenta la tendencia anual y cómo? (como en un subconjunto tan pequeño, supongo que la tendencia es insignificante)

No estoy seguro de lo que quieres decir con tendencia anual. Suponiendo que se refiere a la estacionalidad anual, no hay realmente ninguna forma de tenerlo en cuenta con menos de un año de datos.

  1. ¿Esperaría que el orden del modelo permanezca igual en todo el conjunto de datos, es decir, al tomar otro subconjunto me dará el mismo modelo?

Esperaría que, salvo algún cambio en la forma en que se generan los datos, el modelo subyacente más correcto sea el mismo en todo el conjunto de datos. Sin embargo, eso no es lo mismo que decir que el modelo seleccionado por cualquier procedimiento (como el procedimiento utilizado por auto.arima) será el mismo si ese procedimiento se aplica a diferentes subconjuntos de datos. Esto se debe a que la variabilidad debida al muestreo dará como resultado una variabilidad en los resultados del procedimiento de selección del modelo.

  1. ¿Cuál es una buena manera, dentro de este método, de hacer frente a las vacaciones? ¿O se necesita ARIMAX con muñecos de vacaciones externos para esto?

Dummies de vacaciones externas es el mejor enfoque.

  1. ¿Debo usar el enfoque de la serie de Fourier para probar modelos con los seasonality=672que se analizan en períodos estacionales largos ?

Debe hacer algo, porque como se menciona en ese artículo, la función arima en R no admite períodos estacionales superiores a 350. He tenido un éxito razonable con el enfoque de Fourier. Otras opciones incluyen el pronóstico después de la descomposición estacional (también cubierto en FPP) y modelos de suavizado exponencial como murciélagos y tbats.

  1. Si es así, sería así fit<-Arima(timeseries,order=c(0,1,4), xreg=fourier(1:n,4,672)(donde la función fourier es como se define en la publicación del blog de Hyndman)

Eso se ve correcto. Debes experimentar con diferentes números de términos. Tenga en cuenta que ahora hay una fourierfunción en el paquete de pronóstico con una especificación ligeramente diferente que supongo que reemplaza a la del blog de Hyndman. Vea el archivo de ayuda para la sintaxis.

  1. ¿Se incluyen los componentes iniciales P y Q con la serie de Fourier?

No estoy seguro de lo que estás preguntando aquí. P y Q generalmente se refieren a los grados de los componentes estacionales AR y MA. Utilizando el enfoque de Fourier, no hay componentes estacionales y, en cambio, hay covariables para los términos de Fourier relacionados con la temporada. Ya no es ARIMA estacional, es ARIMAX donde las covariables se aproximan a la temporada.

Jeremy Coyle
fuente