Cálculo de índices de estacionalidad para estacionalidad compleja

10

Quiero pronosticar artículos minoristas (por semana) usando suavizado exponencial. Ahora mismo estoy atascado en cómo calcular, almacenar y aplicar los índices de sesonidad.

El problema es que todos los ejemplos que he encontrado tratan con una especie de estacionalidad simple. En mi caso, tengo los siguientes problemas: 1. Las estaciones no ocurren en la misma semana todos los años: son móviles. Mardi-gras, cuaresma, pascua y algunos otros. 2. Hay estaciones que cambian según el año. Por ejemplo, hay una temporada de fiestas nacionales. Dependiendo de si las vacaciones están cerca del fin de semana, los clientes saldrán o no de la ciudad. Así que es como tener dos estaciones: una en la que los clientes abandonan la ciudad y otra en la que no abandonan la ciudad. 3. Algunas veces ocurren dos (o 3) estaciones al mismo tiempo. Por ejemplo, tuvimos la temporada de "Mardi-Gras" al mismo tiempo que la temporada de San Valentín.
4. Algunas veces las estaciones cambian en duración. Por ejemplo, la "temporada de Halloween" comenzó a principios de este año. La Navidad también es otro ejemplo, donde parece que todos los años comenzamos antes a llevar los productos.

Me parece que necesito encontrar una manera de establecer algún tipo de "perfiles estacionales" que luego, dependiendo del escenario particular, de alguna manera se agreguen para obtener el índice estacional correcto. ¿Tiene sentido?

¿Alguien sabe dónde puedo encontrar información práctica sobre cómo hacer esto?

Gracias Edgard

elriba
fuente

Respuestas:

7

Para los tipos de estacionalidad que describe, el enfoque de variable ficticia es probablemente el mejor. Sin embargo, esto es más fácil de manejar en un marco ARIMA que en un marco de suavizado exponencial. donde cada variable corresponde a uno de los eventos festivos o festivales. Así es como la función en R se ajustará a las variables de regresión (como una regresión con errores ARIMA, no como un modelo ARIMAX).

yt=a+b1Dt,1++bmDt,m+NtNtARIMA
Dt,karima

Si realmente desea seguir con el marco de suavizado exponencial, hay una discusión sobre cómo incluir covariables en mi libro de 2008 sobre suavizado exponencial . También puede consultar mi artículo reciente sobre suavizado exponencial con estacionalidad compleja, aunque los tipos de complicaciones estacionales que discutimos allí son más difíciles que el tipo de festival móvil que usted describe.

Rob Hyndman
fuente
Hola, Kwak y Rob. Gracias por mirar esto. Quería usar el suavizado exponencial porque esto es con lo que estoy más familiarizado. Estoy pensando que necesito aprender sobre cómo usar el marco ARIMA. ¿Podría recomendarme un buen libro que me ayude a aprender lo suficiente sobre el marco ARIMA para aplicar un enfoque de variable ficticia? Tengo "Pronósticos, series de tiempo y regresión" de Bowerman y "Pronósticos: práctica y proceso para la gestión de la demanda" de Levenbach, que aprendí sobre el suavizado exponencial. No sé si estos van con suficiente detalle para lo que necesitaría. ¡Gracias!
elriba
Bowerman O'Connell y Koehler son bastante buenos para presentar modelos ARIMA, pero no creo que incluya ARIMA con covariables. Puede probar mi libro de texto de 1998 que cubre el modelado y regresión ARIMA con errores ARIMA a nivel introductorio. Visite robjhyndman.com/forecasting para más detalles.
Rob Hyndman el
1

Una solución simple sería incluir variables ficticias de eventos en su especificación:

(1)yt^=λ1yt1+...+λkytk+ϕ1Dt,1+ϕmDt,m

donde es una toma valor del indicador si la semana tiene caso (digamos del carnaval) y 0 en caso contrario, para todos los eventos que considere importante. 1 t m mDt,m1tmm

La primera parte de la especificación es esencialmente un suavizador exponencial pero con un peso variable en función de los retrasos (y estimado por OLS).λ1yt1+...+λkytk

Esto supone que tiene al menos 20 observaciones para cada evento (es decir, 20 'carnaval'). Si este no es el caso, puede intentar agrupar algunos eventos (por ejemplo, mardi gras y día del trabajo).

La R para ajustar (1) es bastante sencilla, suponiendo que dlsales es estacionaria y D es su matriz de variables ficticias:

fit<-arima(dlsales,order=c(4,0,0),seasonal = list(order = c(1, 0, 0),period=52),xreg = D)

A partir de aquí, puede hacer preguntas más específicas sobre la parte de mi respuesta que no le son familiares (no sé cuál es su nivel en estadísticas).

usuario603
fuente
2
En realidad, la función arima en R no se ajustará a su modelo (1). arima () hace una regresión con errores ARIMA y su ecuación (1) es un modelo ARMAX.
Rob Hyndman, el
Rob:> he editado la ecuación uno. ¿Puede señalar una fuente donde se explican las diferencias entre armax y regresión con errores de arima (o, alternativamente, proporcionar una explicación intuitiva)? Además, ¿conocería un paquete R que implemente modelos ARMAX? Gracias por adelantado.
user603
Un modelo ARMAX de primer orden con una covariable es y_t = a + bx_t + cy_ {t-1} + e_t donde e_t es iid media cero. La regresión correspondiente con el error ARIMA es y_t = a + bx_t + n_t donde n_t = phi * n_ {t-1} + z_t y z_t es iid media cero.
Rob Hyndman el
1
@kwak. Primero, n_t = phi n_ {t-1} + z_t es AR (1). Un proceso de promedio móvil de orden 1 sería n_t = theta z_ {t-1} + z_t. En segundo lugar, una regresión con errores de MA es equivalente a un modelo MAX. Pero una vez que agrega términos AR en el proceso de error, no hay equivalencia entre las dos clases. Tercero, la función arimax () en TSA se ajusta a los modelos de función de transferencia, un caso especial de los cuales es una regresión con errores ARIMA. No se ajusta a los modelos ARIMAX. Podría escribir una publicación de blog sobre esto, ya que es difícil encontrar las diferentes clases de modelos comparadas y discutidas en cualquier lugar.
Rob Hyndman
2
He tratado de resumir los distintos modelos en robjhyndman.com/researchtips/arimax
Rob Hyndman