Estoy buscando algunos consejos de previsión cuando se trata de datos de series temporales estacionales que tienen un gran número de observaciones. Por "grande" me refiero a unos pocos miles --- estoy acostumbrado a que tales tamaños en la Minería de Datos se consideren bastante pequeños, pero parece que en el modelado de series temporales eso es bastante difícil de manejar para muchas de las herramientas que he probado.
Por ejemplo, este es un conjunto de datos de juguete que registra una observación una vez por minuto, durante cinco días:
set.seed(123)
t <- 1:(5*24*60)
x <- ts(15 + 0.001*t + 10*sin(2*pi*t/(length(t)/5)) + rnorm(length(t)), freq=length(t)/5)
plot(x, type='l')
(En mi conjunto de datos operativos reales, los valores se observan a intervalos irregulares, pero los he regularizado haciendo algo como x <- approx(d$t, d$x, xout=1:(5*24*60))
primero. También son bienvenidos los consejos sobre si eso es aconsejable, o enfoques alternativos).
Así pues, la estacionalidad en este conjunto de datos tiene un desfase de 1.440 observaciones, lo que parece estar muy fuera del rango en el que se encuentran cosas como auto.arima()
(en el forecast
paquete) encontrará:
m1 <- auto.arima(x)
plot(forecast(m1))
Y no estoy muy seguro de cómo interpretar el ets()
pero no parece ser capaz de manejar estos datos de tamaño, y no parece recoger la estacionalidad:
> m2 <- ets(x, 'MAZ')
> plot(forecast(m2))
Error in forecast.ets(m2) : Forecast horizon out of bounds
> m2$method
[1] "ETS(M,A,N)"
¿Qué hacer a partir de ahora? ¿Alguna sugerencia?