Predicción de series temporales con datos diarios: ARIMA con regresor

15

Estoy usando una serie temporal diaria de datos de ventas que contiene aproximadamente 2 años de puntos de datos diarios. Basado en algunos de los tutoriales / ejemplos en línea, traté de identificar la estacionalidad en los datos. Parece que hay una periodicidad / estacionalidad semanal, mensual y probablemente anual.

Por ejemplo, hay días de pago, particularmente el primer día de pago del mes, el efecto dura unos pocos días durante la semana. También hay algunos efectos específicos de vacaciones, claramente identificables al observar las observaciones.

Equipado con algunas de estas observaciones, probé lo siguiente:

  1. ARIMA (con Arimay auto.arimadesde el paquete R-Forecast), utilizando regresor (y otros valores predeterminados necesarios en la función). El regresor que creé es básicamente una matriz de valores 0/1:

    • Variables de 11 meses (n-1)
    • 12 variables de vacaciones
    • No se pudo entender la parte del día de pago ... ya que es un efecto poco más complicado de lo que pensaba. El efecto de día de pago funciona de manera diferente, dependiendo del día de la semana del 1 de mes.

    Usé 7 (es decir, frecuencia semanal) para modelar la serie de tiempo. Probé la prueba, pronosticando 7 días a la vez. Los resultados son razonables: la precisión promedio para un pronóstico de 11 semanas llega a un RMSE promedio semanal de 5%.

  2. Modelo TBATS (del paquete R-Forecast): utiliza la estacionalidad múltiple (7, 30.4375, 365.25) y obviamente no regresor. La precisión es sorprendentemente mejor que el modelo ARIMA a un promedio semanal de RMSE de 3.5%.

    En este caso, el modelo sin errores ARMA funciona ligeramente mejor. Ahora, si aplico los coeficientes solo para los efectos de vacaciones del modelo ARIMA descrito en el n. ° 1, a los resultados del modelo TBATS, el RMSE promedio semanal mejora a 2.95%

Ahora, sin tener muchos antecedentes o conocimientos sobre las teorías subyacentes de estos modelos, tengo el dilema de si este enfoque TBATS es incluso válido. Aunque está mejorando significativamente el RMSE en la prueba de 11 semanas, me pregunto si puede mantener esta precisión en el futuro. O incluso si la aplicación de efectos de vacaciones de ARIMA al resultado TBATS es justificable. Cualquier idea de cualquiera / todos los contribuyentes será muy apreciada.

Enlace para datos de prueba

Nota: Haga "Guardar enlace como" para descargar el archivo.

CKI
fuente
1
Bienvenido al sitio, @CKI. Si puede cargar sus datos en algún lugar de la web, puede publicar un enlace aquí.
gung - Restablece a Monica
Me interesa saber más sobre cómo se configuraron los regresores.
orbital
Los dummies de 6 días de la semana, 11 dummies mensuales y días festivos son regresores simples de 0/1. El día fijo del mes, adelanto y retraso en las vacaciones, tendencia de tiempo, pulso estacional y pulso se basan en una búsqueda heurística.
Tom Reilly
Entonces, CKI, ¿cómo lo resolviste?
Tom Reilly
Hola CKI, ¿puedes compartir parte de tu script R utilizado para crear la matriz de estacionalidad
Ahmed

Respuestas:

9

Debería estar evaluando modelos y pronósticos de diferentes orígenes en diferentes horizontes y no un solo número para medir un enfoque.

Supongo que sus datos son de los EE. UU. Prefiero más de 3 años de datos diarios, ya que puede tener dos días festivos aterrizando en un fin de semana y no obtener lectura de lunes a viernes. Parece que su impacto de Acción de Gracias es un día libre en el 2012 o hubo un error de grabación de algún tipo y causó que el modelo omitiera el efecto del día de Acción de Gracias.

Los enero generalmente son bajos en el conjunto de datos si se mira como un% del año. Los fines de semana son altos. Los dummies reflejan este comportamiento ... MONTH_EFF01, FIXED_EFF_N10507, FIXED_EFF_N10607

He descubierto que el uso de un componente AR con datos diarios supone que el patrón de las últimas dos semanas del día de la semana es cómo es el patrón en general, lo cual es una gran suposición. Comenzamos con 11 dummies mensuales y 6 dummies diarios. Algunos abandonaron el modelo. B ** 1 significa que hay un retraso en el impacto el día después de un feriado. Hubo 6 días especiales del mes (días 2,3,5,21,29,30 ---- 21 podrían ser espurios?) Y 3 tendencias de tiempo, 2 pulsos estacionales (donde un día de la semana comenzó a desviarse del típico, un 0 antes de estos datos y un 1 cada 7 días después) y 2 valores atípicos (¡tenga en cuenta la acción de gracias!) Esto tardó menos de 7 minutos en ejecutarse. Descargue todos los resultados aquí www.autobox.com/se/dd/daily.zip

Incluye una hoja XLS rápida y sucia para verificar si el modelo tiene sentido. Por supuesto, el XLS% es de hecho malo, ya que son puntos de referencia crudos.

Intenta estimar este modelo:

Y(T) =  .53169E+06                                                                                        
       +[X1(T)][(+  .13482E+06B** 1)]                                       M_HALLOWEEN
       +[X2(T)][(+  .17378E+06B**-3)]                                       M_JULY4TH
       +[X3(T)][(-  .11556E+06)]                                            M_MEMORIALDAY
       +[X4(T)][(-  .16706E+06B**-4+  .13960E+06B**-3-  .15636E+06B**-2                                                 
       -  .19886E+06B**-1)]                                                 M_NEWYEARS
       +[X5(T)][(+  .17023E+06B**-2-  .26854E+06B**-1-  .14257E+06B** 1)]   M_THANKSGIVI
       +[X6(T)][(-  71726.    )]                                            MONTH_EFF01
       +[X7(T)][(+  55617.    )]                                            MONTH_EFF02
       +[X8(T)][(+  27827.    )]                                            MONTH_EFF03
       +[X9(T)][(-  37945.    )]                                            MONTH_EFF09
       +[X10(T)[(-  23652.    )]                                            MONTH_EFF10
       +[X11(T)[(-  33488.    )]                                            MONTH_EFF11
       +[X12(T)[(+  39389.    )]                                            FIXED_EFF_N10107
       +[X13(T)[(+  63399.    )]                                            FIXED_EFF_N10207
       +[X14(T)[(+  .13727E+06)]                                            FIXED_EFF_N10307
       +[X15(T)[(+  .25144E+06)]                                            FIXED_EFF_N10407
       +[X16(T)[(+  .32004E+06)]                                            FIXED_EFF_N10507
       +[X17(T)[(+  .29156E+06)]                                            FIXED_EFF_N10607
       +[X18(T)[(+  74960.    )]                                            FIXED_DAY02
       +[X19(T)[(+  39299.    )]                                            FIXED_DAY03
       +[X20(T)[(+  27660.    )]                                            FIXED_DAY05
       +[X21(T)[(-  33451.    )]                                            FIXED_DAY21
       +[X22(T)[(+  43602.    )]                                            FIXED_DAY29
       +[X23(T)[(+  68016.    )]                                            FIXED_DAY30
       +[X24(T)[(+  226.98    )]                                            :TIME TREND        1                   1/  1   1/ 3/2011   I~T00001__010311stack
       +[X25(T)[(-  133.25    )]                                            :TIME TREND      423                  61/  3   2/29/2012   I~T00423__010311stack
       +[X26(T)[(+  164.56    )]                                            :TIME TREND      631                  91/  1   9/24/2012   I~T00631__010311stack
       +[X27(T)[(-  .42528E+06)]                                            :SEASONAL PULSE  733                 105/  5   1/ 4/2013   I~S00733__010311stack
       +[X28(T)[(-  .33108E+06)]                                            :SEASONAL PULSE  370                  53/  6   1/ 7/2012   I~S00370__010311stack
       +[X29(T)[(-  .82083E+06)]                                            :PULSE           326                  47/  4  11/24/2011   I~P00326__010311stack
       +[X30(T)[(+  .17502E+06)]                                            :PULSE           394                  57/  2   1/31/2012   I~P00394__010311stack
      +                    +   [A(T)]
Tom Reilly
fuente