Enfoque Tradicional.

library(readxl)
library (forecast)
serie.ivae <- read_excel("C:/Users/USUARIO/Downloads/Karla Mireya Hernandez Cartagena - IVAE_SLV_C.xlsx",
                         col_types = c("skip", "numeric"),
                         skip= 5)

serie.ivae.ts <- ts(data = serie.ivae,
                    start = c(2009, 1),
                    frequency = 12)
serie.ivae.ts %>% autoplot(main = "IVAE, El Salvador 2009-2021[marzo]",
                           xlab = "Años/Meses",
                           ylab = "Indice")

Modelo Aditivo.

#Componente de Tendencia Tt [Componente TCt]
ma2_12 <- ma(serie.ivae.ts, 12, centre = TRUE)
autoplot(serie.ivae.ts,main = "IVAE, El Salvador 2009-2021[marzo]",
           xlab = "Años/Meses",
           ylab = "Indice")+
  autolayer(ma2_12,series = "Tt")

#Cálculo de los Factores Estacionales [Componente St]
library(magrittr)
Yt <- serie.ivae.ts #Serie original
Tt <- ma2_12 #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(2009, 1), frequency = 12) 
autoplot(St,
         main = "Factores Estacionales",
         xlab = "Años/Meses",
         ylab = "Factor Estacional") 

#Cálculo del Componente Irregular It.
It<-Yt-Tt-St
autoplot(It,
         main = "Componente Irregular",
         xlab = "Años/Meses",
         ylab = "It")

#Descomposición Aditiva (usando la libreria stats)
descomposicion_aditiva<-decompose(serie.ivae.ts,type = "additive")
autoplot(descomposicion_aditiva,main="Descomposición Aditiva",xlab="Años/Meses")

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, IVAE")+xlab("Años/Meses")

Modelo Multiplicativo.

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

# 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(2009, 1), frequency = 12) 
autoplot(St,
         main = "Factores Estacionales",
         xlab = "Años/Meses",
         ylab = "Factor Estacional") 

#Cálculo del Componente Irregular [It]
It<-Yt/(Tt*St)
autoplot(It,
         main = "Componente Irregular",
         xlab = "Años/Meses",
         ylab = "It")

#Descomposición Multiplicativa (usando la libreria stats)
descomposicion_multiplicatica<-decompose(serie.ivae.ts,type = "multiplicative")
autoplot(descomposicion_multiplicatica,main="Descomposición Multiplicativa",xlab="Años/Meses")

#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, IVAE") + xlab("Años/Meses")

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")