26 votos

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

Tengo una serie temporal que contiene componentes estacionales dobles 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). Por lo que sé, el procedimiento STL para descomponer una serie en R sólo permite un componente estacional, así que he intentado descomponer la serie dos veces. Primero, estableciendo que la frecuencia sea el primer componente estacional utilizando el siguiente código:

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

A continuación, descompuse el componente irregular de la serie descompuesta ( dec_1 ) fijando la frecuencia en la segunda componente estacional, de forma que:

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

No me inspira mucha confianza este planteamiento. Y me gustaría saber si hay alguna otra forma de descomponer una serie que tiene múltiples estacionalidades. Además, me he dado cuenta de que el tbats() en R previsión permite ajustar un modelo a una serie con múltiples estacionalidades, sin embargo, no dice cómo descomponer una serie con él.

12voto

power Puntos 728

R's forecast paquete bats() y tbats() pueden ajustar modelos BATS y TBATS a los datos. Las funciones devuelven listas con un atributo de clase "bats" o "tbats". Uno de los elementos de esta lista es una serie temporal de vectores de estado, $x(t)$ para cada momento, $t$ .

Véase http://robjhyndman.com/papers/complex-seasonality/ para las fórmulas y Hyndman et al (2008) para 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 x estará en el armónico de Fourier.

También hay plot.tbats() y plot.bats() para descomponer y visualizar automáticamente los componentes.

2voto

Chris N. Tyler Puntos 41

R's forecast dispone ahora de una función mstl() para manejar la descomposición de series temporales estacionales múltiples.

Esta página tiene más detalles sobre cómo usarlo: https://pkg.robjhyndman.com/forecast/reference/mstl.html

1voto

makeyourownmaker Puntos 113

El facebook profeta El paquete admite múltiples estacionalidades .

Las estacionalidades anuales, semanales y diarias están incorporadas, pero pueden especificarse estacionalidades personalizadas.

He aquí una estacionalidad mensual personalizada:

df <- ...     # data to build model on or decompose
future <- ... # data to make forecasts on

m <- prophet(weekly.seasonality = FALSE)
m <- add_seasonality(m, name = 'monthly', period = 30.5, fourier.order = 5)
m <- fit.prophet(m, df)
forecast <- predict(m, future)
prophet_plot_components(m, forecast)

Si predict() se llama sin pasar un marco de datos, entonces descompondrá las series temporales utilizadas para construir el modelo.

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