Capítulo 6: Descomposición de series de tiempo

Los datos de una serie de tiempo pueden exhibir una variedad de patrones. En ocaciones, es útil dividir una serie de tiempo en varios componentes, cada uno de los cuales representa una categoría de un patrón subyacente. Al descomponer una serie de tiempo en sus componentes, generalmente se combina la tendencia y el ciclo en un solo componente de tendencia-ciclo, llamado tendencia por simplicidad. Por lo tanto, una serie de tiempo consta de tres componentes:

1. un componente de ciclo de tendencia

2. un componente estacional

3. un componente de resto que contiene cualquier otra cosa en la serie de tiempo

6.1 Componentes de una serie de tiempo

Si asumimos una descomposición aditiva, entonces podemos escribir

yt = St + Tt + Rt,

donde

yt son los datos

St es el componente estacional

Tt es el componente tendencia-ciclo

Rt es el componente restante, todo en el período t

Alternativamente, una descomposición multiplicativa se escribiría como

yt = St × Tt × Rt

La descomposición aditiva es la más adecuada si la magnitud de las fluctuaciones estacionales, o la variación en torno a la tendencia-ciclo, no varía con el nivel de la serie temporal. Cuando la variación en el patrón estacional, o la variación alrededor del ciclo de tendencia, parece ser proporcional al nivel de la serie temporal, entonces es más apropiada una descomposición multiplicativa. Las descomposiciones multiplicativas son comunes con las series temporales económicas.

Una alternativa al uso de una descomposición multiplicativa es primero transformar los datos hasta que la variación en la serie parezca estable a lo largo del tiempo y luego usar una descomposición aditiva. Cuando se ha usado una transformación logarítmica, esto es equivalente a usar una descomposición multiplicativa porque

yt = St × Tt × Rt es equivalente a yt = St

6.2 Medias Móviles

El método clásico de descomposición de series de tiempo se originó en la década de 1920 y fue ampliamente utilizado hasta la década de 1950. Todavía constituye la base de muchos métodos de descomposición de series temporales, por lo que es importante entender cómo funciona. El primer paso en una descomposición clásica es usar un método de promedio móvil para estimar el ciclo de tendencia, por lo que comenzamos analizando los promedios móviles.

6.2.1 Suavizado de la media móvil

Una media móvil de orden m se puede escribir como:

Tt = 1/m ∑ yt + j

donde

m = 2k + 1

La estimación de la tendencia-ciclo en el momento t se obtiene promediando los valores de la serie temporal dentro de k periodos de t. También es probable que las observaciones que están cercanas en el tiempo tengan un valor cercano. Por lo tanto, el promedio elimina parte de la aleatoriedad en los datos, dejando un componente suave de ciclo de tendencia. Llamamos a esto un m - MA, que significa un promedio móvil de orden m.

library(fpp2)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
## -- Attaching packages ---------------------------------------------- fpp2 2.4 --
## v ggplot2   3.3.5     v fma       2.4  
## v forecast  8.16      v expsmooth 2.3
## 
library(seasonal)
autoplot(elecsales) + xlab("Year") + ylab("GWh") +
  ggtitle("Annual electricity sales: South Australia")

ma(elecsales, 5)
## Time Series:
## Start = 1989 
## End = 2008 
## Frequency = 1 
##  [1]       NA       NA 2381.530 2424.556 2463.758 2552.598 2627.700 2750.622
##  [9] 2858.348 3014.704 3077.300 3144.520 3188.700 3202.320 3216.940 3307.296
## [17] 3398.754 3485.434       NA       NA
autoplot(elecsales, series="Data") +
  autolayer(ma(elecsales,5), series="5-MA") +
  xlab("Year") + ylab("GWh") +
  ggtitle("Annual electricity sales: South Australia") +
  scale_colour_manual(values=c("Data"="grey50","5-MA"="red"),
                      breaks=c("Data","5-MA"))
## Warning: Removed 4 row(s) containing missing values (geom_path).

6.2.2 Medias móviles de medias móviles

Es posible aplicar una media móvil a una media móvil. Una razón para hacer esto es hacer que un promedio móvil de orden par sea simétrico. Por ejemplo, podríamos tomar un promedio móvil de orden 4 y luego aplicar otro promedio móvil de orden 2 a los resultados. En la siguiente tabla, esto se ha hecho para los primeros años de los datos trimestrales de producción de cerveza de Australia.

beer2 <- window(ausbeer,start=1992)
ma4 <- ma(beer2, order=4, centre=FALSE)
ma2x4 <- ma(beer2, order=4, centre=TRUE)

6.2.3 Estimación de la tendencia-ciclo con datos estacionales

El uso más común de los promedios móviles centrados es para estimar el ciclo de tendencia a partir de datos estacionales. Cuando se aplica a datos trimestrales, cada trimestre del año tiene el mismo peso que el primero y el último término se aplican al mismo trimestre en años consecutivos. En consecuencia, la variación estacional se promediará y los valores resultantes de Tt tendrán poca o ninguna variación estacional restante.

autoplot(elecequip, series="Data") +
  autolayer(ma(elecequip, 12), series="12-MA") +
  xlab("Year") + ylab("New orders index") +
  ggtitle("Electrical equipment manufacturing (Euro area)") +
  scale_colour_manual(values=c("Data"="grey","12-MA"="red"),
                      breaks=c("Data","12-MA"))
## Warning: Removed 12 row(s) containing missing values (geom_path).

6.3 Descomposición Clásica

El método de descomposición clásico se originó en la década de 1920. Es un procedimiento relativamente simple y constituye el punto de partida para la mayoría de los demás métodos de descomposición de series temporales. Hay dos formas de descomposición clásica: una descomposición aditiva y una descomposición multiplicativa. Estos se describen a continuación para una serie de tiempo con un período estacional m (p. ej., m = 4 para datos trimestrales, m = 12 para datos mensuales, m = 7 para datos diarios con un patrón semanal). En la descomposición clásica, suponemos que el componente estacional es constante de un año a otro. Para la estacionalidad multiplicativa, los valores de m que forman el componente estacional a veces se denominan “índices estacionales”.

6.3.1 Descomposición Multiplicativa

Una descomposición multiplicativa clásica es similar, excepto que las restas se reemplazan por divisiones.

Paso 1: si m es un número par, calcule el componente de tendencia-ciclo Tt usando un 2 × m - MA. Si m es un número impar, calcule el componente de tendencia-ciclo Tt utilizando un m - MA.

Paso 2: Calcular la serie sin tendencia: yt/Tt

Paso 3: Para estimar el componente estacional de cada temporada, simplemente promedie los valores sin tendencia para esa temporada. Por ejemplo, con datos mensuales, el índice estacional de marzo es el promedio de todos los valores de marzo sin tendencia en los datos. Estos índices estacionales luego se ajustan para asegurar que se suman a m. El componente estacional se obtiene encadenando estos índices mensuales y luego replicando la secuencia para cada año de datos. Esto le da a St.

Paso 4: El componente restante se calcula dividiendo los componentes estacionales y de ciclo de tendencia estimados: Rt = yt/(TtSt)

elecequip %>% decompose(type="multiplicative") %>%
  autoplot() + xlab("Year") +
  ggtitle("Classical multiplicative decomposition
    of electrical equipment index")

6.4 Descomposición X11

6.5 Descomposición SEATS

“SEATS” significa “Extracción estacional en series temporales ARIMA”. Este procedimiento fue desarrollado en el Banco de España y ahora es ampliamente utilizado por agencias gubernamentales de todo el mundo. El procedimiento funciona sólo con datos trimestrales y mensuales. Por lo tanto, la estacionalidad de otros tipos, como los datos diarios, los datos por hora o los datos semanales, requieren un enfoque alternativo.

library(seasonal)
elecequip %>% seas() %>%
autoplot() +
  ggtitle("SEATS decomposition of electrical equipment index")

6.6 Descomposición STL

STL es un método versátil y robusto para descomponer series de tiempo. STL es un acrónimo de “Descomposición estacional y de tendencia usando Loess”, mientras que Loess es un método para estimar relaciones no lineales. STL tiene varias ventajas sobre los métodos de descomposición clásicos, SEATS y X11:

A diferencia de SEATS y X11, STL manejará cualquier tipo de estacionalidad, no solo datos mensuales y trimestrales. Se permite que el componente estacional cambie con el tiempo, y el usuario puede controlar la tasa de cambio.

La suavidad del ciclo de tendencia también puede ser controlada por el usuario.

Puede ser resistente a los valores atípicos (es decir, el usuario puede especificar una descomposición robusta), de modo que las observaciones inusuales ocasionales no afecten las estimaciones de los componentes estacionales y de tendencia-ciclo. Sin embargo, afectarán al componente restante.

elecequip %>%
  stl(t.window=13, s.window="periodic", robust=TRUE) %>%
  autoplot()

6.8 Pronóstico con descomposición

Si bien la descomposición es principalmente útil para estudiar datos de series de tiempo y explorar cambios históricos a lo largo del tiempo, también se puede usar en pronósticos. Suponiendo una descomposición aditiva, la serie de tiempo descompuesta se puede escribir como

yt = St + En

donde At = Tt + Rt es el componente desestacionalizado.

Si se ha utilizado una descomposición multiplicativa, podemos escribir

yt = StAt

donde At = TtRt

Para pronosticar una serie de tiempo descompuesta, pronosticamos el componente estacional St y el componente ajustado estacionalmente At por separado. Por lo general, se supone que el componente estacional no cambia, o cambia muy lentamente, por lo que se pronostica simplemente tomando el último año del componente estimado. En otras palabras, se utiliza un método ingenuo estacional para el componente estacional.

fit <- stl(elecequip, t.window=13, s.window="periodic",
  robust=TRUE)
fit %>% seasadj() %>% naive() %>%
  autoplot() + ylab("New orders index") +
  ggtitle("Naive forecasts of seasonally adjusted data")

fit %>% forecast(method="naive") %>%
  autoplot() + ylab("New orders index")

fcast <- stlf(elecequip, method='naive')