Una posibilidad sería ARIMAX, donde la actividad promocional serían los regresores adicionales. Observe ?auto.arima
en R.
He aquí un ejemplo. Simulamos un proceso ARMA(1,1) con una media distinta de cero y promociones (18 semanas sin promociones, seguidas de 2 semanas con promociones, repetido una y otra vez durante 200 semanas) y lo introducimos en un proceso ts
con una estacionalidad de 52, que es casi el número de semanas al año:
library(forecast)
hist.promos <- rep(c(rep(0,18),rep(1,2)),10)
set.seed(2)
sales.ts <- ts(10*arima.sim(model=list(ar=0.5,ma=0.3),
n=length(hist.promos))+60+50*hist.promos,frequency=52)
Para ello, utilizamos el modelo auto.arima()
alimentando las promociones históricas a través del xreg
parámetro:
model <- auto.arima(sales.ts,xreg=hist.promos)
model
(Tenga en cuenta que auto.arima()
no recupera el modelo verdadero: cree que hay una estacionalidad que no hemos puesto. Así es la vida en estadística).
Ahora podemos hacer previsiones con el modelo, utilizando forecast.Arima()
(fíjate en la A mayúscula por si quieres leer la página de ayuda). Tenga en cuenta que tenemos que proporcionar el futuro valores de los regresores (es decir, los ascensos) mediante xreg
. Calculamos una previsión de referencia sin promociones futuras y otra con ellas:
fcast.without.promos <- forecast(model,h=20,xreg=rep(0,20))
fcast.with.promos <- forecast(model,h=20,xreg=c(rep(0,18),rep(1,2)))
Podemos comparar las previsiones medias (previsiones puntuales). La diferencia es, por supuesto, exactamente 46,3007: el coeficiente estimado del modelo.
fcast.with.promos
fcast.without.promos
fcast.with.promos$mean-fcast.without.promos$mean
plot(fcast.with.promos)
Por último, algunas preguntas meta: ¿las promociones coinciden con las definiciones de la semana, o van, por ejemplo, de miércoles a martes, mientras que la semana se define de domingo a sábado? Piénselo detenidamente. Además, piense si tiene un solo tipo de promoción o diferentes (BOGO frente a reducción de precio directa, anunciada en televisión frente a en las etiquetas de los estantes, etc.). Por último, en función de los productos, es posible que también desee incluir regresores para eventos del calendario, como Navidad, etc., si auto.arima()
y amigos no captan estos efectos automáticamente.