I. IMPORTACIÓN Y CREACIÓN DEL OBJETO ts

library(readxl)
library(forecast)
library(magrittr)
library(tsibble)
library(feasts)
library(ggplot2)
library(TSstudio)

serie.imae <- read_excel("C:/Users/Paniagua/Downloads/El Salvador IMAE por actividades.xls",
                         sheet     = "Datos",
                         col_types = c("skip", "numeric"),
                         skip      = 6)

names(serie.imae) <- c("IMAE")

Yt <- ts(data      = serie.imae$IMAE,
         start     = c(2018, 1),
         frequency = 12)

# Gráfico de la serie original
autoplot(Yt,
         main = "IMAE, El Salvador 2018-2026 [marzo]",
         xlab = "Años/Meses",
         ylab = "Índice")

II. MODELO ADITIVO Yt = Tt + St + It

# 2.1.1 Componente Tendencia-Ciclo (Tt) — Media móvil 2×12

ma2_12 <- ma(Yt, 12, centre = TRUE)

autoplot(Yt,
         main = "IMAE, El Salvador 2018-2026 [marzo]",
         xlab = "Años/Meses",
         ylab = "Índice") +
  autolayer(ma2_12, series = "Tt")

2.1.2 Factores Estacionales (St) — Modelo Aditivo

Tt  <- ma2_12
SI  <- Yt - Tt                                   # Serie sin tendencia (S + I)

St  <- tapply(SI, cycle(SI), mean, na.rm = TRUE) # Promedio por mes
St  <- St - sum(St) / 12                         # Ajuste: los factores deben sumar 0
St  <- rep(St, len = length(Yt)) %>%
       ts(start = c(2018, 1), frequency = 12)

autoplot(St,
         main = "Factores Estacionales — Modelo Aditivo",
         xlab = "Años/Meses",
         ylab = "Factor Estacional")

2.1.3 Componente Irregular (It) — Modelo Aditivo

It <- Yt - Tt - St

autoplot(It,
         main = "Componente Irregular — Modelo Aditivo",
         xlab = "Años/Meses",
         ylab = "It")

#### 2.1.4 Descomposición Aditiva — librería stats

descomposicion_aditiva <- decompose(Yt, type = "additive")

autoplot(descomposicion_aditiva,
         main = "Descomposición Aditiva — IMAE",
         xlab  = "Años/Meses")

2.1.5 Descomposición Aditiva — librería feasts

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

III. MODELO MULTIPLICATIVO Yt = Tt · St · It

3.1.1 Componente Tendencia-Ciclo (Tt) — Media móvil 2×12

Tt <- ma(Yt, 12, centre = TRUE)

autoplot(Tt,
         main = "Componente Tendencia-Ciclo — Modelo Multiplicativo",
         xlab = "Años/Meses",
         ylab = "Tt")

# 3.1.2 Factores Estacionales (St) — Modelo Multiplicativo

SI  <- Yt / Tt                                    # Serie sin tendencia (S * I)

St  <- tapply(SI, cycle(SI), mean, na.rm = TRUE)  # Promedio por mes
St  <- St * 12 / sum(St)                          # Ajuste: los factores deben promediar 1
St  <- rep(St, len = length(Yt)) %>%
       ts(start = c(2018, 1), frequency = 12)

autoplot(St,
         main = "Factores Estacionales — Modelo Multiplicativo",
         xlab = "Años/Meses",
         ylab = "Factor Estacional")

3.1.3 Componente Irregular (It) — Modelo Multiplicativo

It <- Yt / (Tt * St)

autoplot(It,
         main = "Componente Irregular — Modelo Multiplicativo",
         xlab = "Años/Meses",
         ylab = "It")

3.1.4 Descomposición Multiplicativa — librería stats

descomposicion_multiplicativa <- decompose(Yt, type = "multiplicative")

autoplot(descomposicion_multiplicativa,
         main = "Descomposición Multiplicativa — IMAE",
         xlab  = "Años/Meses")

3.1.5 Descomposición Multiplicativa — librería feasts

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

IV. DESCOMPOSICIÓN CON TSstudio

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