II. Descomposición de Series Temporales (Enfoque Tradicional)

Se usará la serie del Indice de Volumen de la Actividad Económica [IVAE], para el periodo 2018-2026[marzo].

library(readxl)
library(forecast)
library(ggplot2)

# Cargar datos
serie.imae <- read_excel("C:/Users/Usuario/Downloads/IMAE_ES.xlsx",
                         col_types = c("text", "numeric"),
                         skip = 1)

# Crear serie de tiempo (inicia en enero 2018)
serie.imae.ts <- ts(data = serie.imae[[2]],
                    start = c(2018, 1),
                    frequency = 12)

# Graficar
serie.imae.ts %>%
  autoplot(main = "IMAE, El Salvador 2018-2026",
           xlab = "Años/Meses",
           ylab = "Indice") +
  scale_x_continuous(breaks = seq(2018, 2026, by = 2))

2.1. Modelo Aditivo.

Modelo Aditivo: La serie temporal es el resultado de la suma de los componentes teóricos. Yt=Tt+Ct+St+It

2.1.1. Componente de Tendencia Tt [Componente TCt]

Se procede a estimar el componente de Tendencia-Ciclo a través de medias móviles:

ma2_12_imae <- forecast::ma(serie.imae.ts, 12, centre = TRUE)

autoplot(serie.imae.ts, main = "IMAE, El Salvador 2018-2026",
                        xlab = "Años/Meses",
                        ylab = "Indice",
                        colour = "black") +
  autolayer(ma2_12_imae, series = "Tt") +
  scale_x_continuous(breaks = seq(2018, 2026, by = 1)) +
  scale_y_continuous(breaks = seq(80, 150, by = 10)) +
  scale_colour_manual(values = c("Tt" = "blue"))

## 2.1.2. Cálculo de los Factores Estacionales [Componente St]

library(magrittr)
Yt <- serie.imae.ts #Serie original
Tt <- ma2_12_imae #Media móvil centrada (2x12-MA) como componente de Tendencia Ciclo
SI <- Yt - Tt #Diferencia que contiene componentes Estacional e Irregular

St <- tapply(SI, cycle(SI), mean, na.rm = TRUE) #Promediando los resultados de cada mes
#Los factores estacionales deben sumar "0" en el modelo aditivo
St <- St - sum(St) / 12 
#Generar la serie de factores para cada valor de la serie original
St <-
  rep(St, len = length(Yt)) %>% ts(start = c(2018, 1), frequency = 12) 
autoplot(St,
         main = "Factores Estacionales",
         xlab = "Años/Meses",
         ylab = "Factor Estacional",
         colour="blue")

2.1.3. Cálculo del Componente Irregular It. It=Yt−Tt−St

It<-Yt-Tt-St
autoplot(It,
         main = "Componente Irregular",
         xlab = "Aos/Meses",
         ylab = "It")

2.1.4. Descomposición Aditiva (usando la libreria stats):

descomposicion_aditiva<-decompose(serie.imae.ts,type = "additive")
autoplot(descomposicion_aditiva,main="Descomposición Aditiva",xlab="Años/Meses")

2.1.5. Descomposición Aditiva usando libreria feasts

library(tsibble)
library(feasts)
library(ggplot2)
Yt %>% as_tsibble() %>%
  model(
    classical_decomposition(value, type = "additive")
  ) %>%
  components() %>%
  autoplot() + 
labs(title = "Descomposición Clásica Aditiva, IMAE")+xlab("Años/Meses")

2.2. Modelo Multiplicativo.

Modelo Multiplicativo: La serie temporal es el resultado de la amplificación/atenuación de la tendencia a causa del resto de los componentes.

Yt=Tt⋅Ct⋅St⋅It

Un modelo Multiplicativo puede expresarse como un un modelo aditivo, a través de una transformación logaritmica, (las minusculas indican el logaritmo natural de la variable/componente):

yt=tt+ct+st+it

2.2.1. Componente Tendencia Ciclo [Tt=TCt]

Tt<- ma(serie.imae.ts, 12, centre = TRUE)
autoplot(Tt,main = "Componente Tendencia [Ciclo]", xlab = "Años/Meses",ylab = "Tt")

2.2.2. Cálculo de Factores Estacionales [St]

SI<-Yt/Tt #Serie sin tendencia.
St <- tapply(SI, cycle(SI), mean, na.rm = TRUE) #Promediando los resultados de cada mes
#Los factores estacionales deben promediar "1" en el modelo multiplicativo
St <- St*12/sum(St) 
#Generar la serie de factores para cada valor de la serie original
St <-
  rep(St, len = length(Yt)) %>% ts(start = c(2018, 1), frequency = 12) 
autoplot(St,
         main = "Factores Estacionales",
         xlab = "Años/Meses",
         ylab = "Factor Estacional") 

en la escala 1 representa el valor de la tendencia y las fluctuaciones hacia abajo o hacia arriba indicarian si en ese mes en particular el valor real es superior o inferior a la tendencia.

2.2.3. Cálculo del Componente Irregular [It]

It=Yt/(Tt⋅St)

It<-Yt/(Tt*St)
autoplot(It,
         main = "Componente Irregular",
         xlab = "Años/Meses",
         ylab = "It")

2.2.4. Descomposición Multiplicativa (usando la libreria stats):

descomposicion_multiplicatica<-decompose(serie.imae.ts,type = "multiplicative")
autoplot(descomposicion_multiplicatica,main="Descomposición Multiplicativa",xlab="Años/Meses")

La desventaja del motodo multiplicativo es que debe usarse con magnitudes no negativas.

2.2.5. Descomposición Multiplicativa usando libreria feasts

library(tsibble)
library(feasts)
library(ggplot2)
Yt %>% as_tsibble() %>%
  model(classical_decomposition(value, type = "multiplicative")) %>%
  components() %>%
  autoplot() +
  labs(title = "Descomposición Clásica Multiplicativa, IMAE") + xlab("Años/Meses")

2.3. Descomposición usando la libreria TSstudio

library(TSstudio)
ts_decompose(Yt, type = "additive", showline = TRUE)
ts_seasonal(Yt,type = "box",title = "Análisis de Valores Estacionales")