3 votos

Quiero hacer previsiones de series temporales sobre datos diarios de transacciones en cajeros automáticos

Dispongo de datos de transacciones diarias en cajeros automáticos y estos datos representan una variación estacional en fin de semana y festivos.

como la siguiente

trans_date  tot_amount  Weekend Holiday_flag
01/10/2013  164800  0   0
02/10/2013  205900  0   1
03/10/2013  215600  0   0
04/10/2013  228600  0   0
05/10/2013  410200  1   0

Utilicé arima() en R para pronosticar los datos del mes siguiente, pero no consigo un pronóstico mejor.

Me confunde capturar la variación estacional en mis datos.

Tengo que seleccionar el orden ARIMA del gráfico ACF y PACF pero tengo cierta confusión para capturar el orden estacional de este gráfico.

Por favor, aconséjeme cómo puedo seleccionar el modelo ARIMA adecuado para mis datos.

3voto

VESTRONIX Puntos 1

¿has probado ya un enfoque tbats "simple" con estacionalidades múltiples como se explica aquí: enlace

Le sugiero que se familiarice con la forecast paquete de Rob J Hyndman. También hay un libro muy bueno de él que está disponible en línea de forma gratuita enlace

En cuanto a su enfoque Arima yo sugeriría que utilice el auto.arima() del paquete de previsiones. Allí puede incluir variables ficticias, incluidos los términos de Fourier (como se explica en el primer enlace). He aquí otro ejemplo de este método enlace

IrishStat no se equivoca cuando dice que es difícil hacer tales previsiones "simplemente" con R - pero (basado en mi propia experiencia) es posible obtener algunos resultados buenos/decentes.

Actualización:

#load your data into R
require('data.table')
dat <- fread('data.csv') #only the date and the amount column
setnames(dat, c(1,2), c('date', 'amount'))
dat$date <- as.Date(dat$date, '%d/%m/%y') #transform date column into real dates    
dat[,Weekday := weekdays(date)] # create a column for the weekdays

#create a time series
dat.ts <- ts(dat$amount, frequency=7)

require('forecast')

#fit a tbats model, forecast 30days, and plot it
fm.tbats <- tbats(dat.ts)
fc.tbats <- forecast(fm.tbats, h=30)
plot(fc.tbats)

#fit an arima model with a fourier term, forecast 30days and plot it
fm.arima <- auto.arima(dat.ts, xreg=fourier(dat.ts, 3))
fc.arima <- forecast(fm.arima, xreg=fourierf(dat.ts,3,30), h=30)
plot(fc.arima)

#fit an arima model with dummies for day of the week
dummies <- cbind(model.matrix(~dat$Weekday)[,2:7])
colnames(dummies) <- c('Tue','Wed','Thu','Fri','Sat','Sun')
fm.arima.d <- auto.arima(dat$amount, xreg=dummies)

Así es como puede utilizar auto.arima() y tbats() para trabajar con tus datos. No estoy diciendo nada acerca de si es bueno/se ajusta a sus datos/lo que sea - sólo quería mostrarle cómo usarlo de la manera correcta. Si tu conjunto de datos es inferior a un año, también puedes probar otras funciones en el módulo forecast paquete como stl() por ejemplo. Cuando escriba ?stl() verás el archivo de ayuda de la función que normalmente incluye un ejemplo sencillo de cómo funciona. Te recomiendo encarecidamente que eches un vistazo al libro de Rob J Hyndman.

0voto

Owen Fraser-Green Puntos 642

Seleccionar el modelo ARIMA "correcto" para datos como éstos no es la opción preferida . Puede que desee ver un ejemplo alternativo basado en variables que utiliza datos diarios de máquinas atm http://www.autobox.com/cms/index.php/afs-university/intro-to-forecasting/doc_download/53-capabilities-presentation a partir de la diapositiva 45. La idea es incorporar (según sea necesario) efectos diarios, efectos semanales, efectos mensuales, efectos específicos de la semana en el mes, efectos específicos del día en el mes, actividad en torno a acontecimientos conocidos como las vacaciones, efectos del fin de semana largo, acontecimientos del viernes anterior a las vacaciones, acontecimientos del lunes posterior a las vacaciones, cambios de nivel, tendencias temporales, impulsos y cambios en los efectos del día de la semana y cualquier variable causal que desee sugerir. Puede programar usted mismo estas actividades exploratorias, pero puede resultar tedioso. Yo fui uno de los desarrolladores de AUTOBOX, por lo que lo digo en aras de la transparencia y por si me quiere felicitar (sonríe).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X