¿Cómo descomponer una serie temporal con múltiples componentes estacionales?

22

Tengo una serie temporal que contiene componentes dobles estacionales y me gustaría descomponer la serie en los siguientes componentes de la serie temporal (tendencia, componente estacional 1, componente estacional 2 y componente irregular). Hasta donde sé, el procedimiento STL para descomponer una serie en R solo permite un componente estacional, por lo que he intentado descomponer la serie dos veces. Primero, configurando la frecuencia para que sea el primer componente estacional utilizando el siguiente código:

ser = ts(data, freq=48)
dec_1 = stl(ser, s.window="per")

Luego, descompuse el componente irregular de la serie descompuesta ( dec_1) estableciendo la frecuencia como el segundo componente estacional, de modo que:

ser2 = ts(dec_1$time.series[,3], freq=336)
dec_2 = stl(ser2, s.window="per")

No estoy muy seguro con este enfoque. Y me gustaría saber si hay otras formas de descomponer una serie que tenga múltiples estacionalidades. Además, he notado que la tbats()función en el paquete de pronóstico R permite ajustar un modelo a una serie con múltiples estacionalidades, sin embargo, no dice cómo descomponer una serie con él.

as
fuente
Hola y bienvenidos al sitio. Para sus dos componentes estacionales, ¿tienen una periodicidad diferente, por ejemplo, una semanal y otra mensual?
Michelle
1
El capítulo 14 de Rob Hyndman, Koehler, Ord & Snyder "Predicción con suavizado exponencial" cubre esto. Hyndman también tiene un paquete de pronósticos en R. Parece recordar que Hyndman publicó en este sitio sobre este tema, pero podría haber estado en su blog.
zbicyclist
@Michelle Hola, gracias por la respuesta. Sí, los dos componentes estacionales tienen una periodicidad diferente. El primero tiene una periodicidad de 48 (estacionalidad diaria), mientras que el segundo tiene una periodicidad de 336 (estacionalidad semanal). Es una serie de tiempo de media hora.
As
@zbicyclist Creo que el paquete de pronóstico del que estás hablando es el paquete de "pronóstico" que mencioné en la publicación original. He echado un vistazo a la función tbats de este paquete, pero no dice cómo usarlo para descomponerlo. Revisaré el libro para ver si puedo encontrar alguna otra ilustración.
as
2
Esto es lo que estaba pensando. Estaba en el blog de Hyndman. robjhyndman.com/papers/complex-seasonality
zbicyclist

Respuestas:

13

forecastbats()tbats()X(t)t

Consulte http://robjhyndman.com/papers/complex-seasonality/ para ver las fórmulas y Hyndman et al (2008) para obtener una mejor descripción de los modelos ETS. BATS y TBATS son una extensión de ETS.

Por ejemplo:

fit <- bats(myTimeseries)
fit$x

En este caso, cada fila de xestará en armónica tipo Fourier.

También hay plot.tbats()y plot.bats()funciones para descomponer de forma automática y ver los componentes.

poder
fuente