{r setup, include=FALSE} options(warn = -1) knitr::opts_chunk$set(echo = TRUE)
options(warn = -1)
library(readxl)
library(forecast)
library(ggplot2)
# Cargar datos
serie.imae <- read_excel(
"C:/Users/gabri/Downloads/El Salvador IMAE por actividades.xls",
col_types = c("skip", "numeric"),
skip = 5
)
# Convertir a serie temporal mensual
serie.imae.ts <- ts(
data = serie.imae,
start = c(2018, 1),
frequency = 12
)
# Graficar la serie
autoplot(serie.imae.ts) +
ggtitle("IMAE de El Salvador, 2018-2026 [marzo]") +
xlab("Años/Meses") +
ylab("Índice")
# Media móvil centrada de 12 meses
ma2_12 <- ma(serie.imae.ts, 12, centre = TRUE)
# Gráfico de la serie y su tendencia estimada
autoplot(
serie.imae.ts,
main = "IMAE de El Salvador 2018-2026 [marzo]",
xlab = "Años/Meses",
ylab = "Índice"
) +
autolayer(ma2_12, series = "Tendencia")
library(magrittr)
# Serie original
Yt <- serie.imae.ts
# Componente Tendencia-Ciclo (media móvil centrada 2x12)
Tt <- ma2_12
# Componente Estacional + Irregular
SI <- Yt - Tt
# Cálculo de factores estacionales
St <- tapply(SI, cycle(SI), mean, na.rm = TRUE)
# En el modelo aditivo los factores estacionales deben sumar 0
St <- St - sum(St) / 12
# Generar la serie estacional completa
St <- rep(St, len = length(Yt)) %>%
ts(start = c(2018, 1), frequency = 12)
# Gráfico de los factores estacionales
autoplot(St) +
ggtitle("Factores Estacionales del IMAE de El Salvador (2018–2026 [marzo])") +
xlab("Años/Meses") +
ylab("Factor Estacional")
## Cálculo del Componente Irregular It : It=Yt−Tt−St
# Componente irregular
It <- Yt - Tt - St
# Gráfico de la componente irregular
autoplot(It) +
ggtitle("Componente Irregular del IMAE de El Salvador (2018–2026 [marzo])") +
xlab("Años/Meses") +
ylab("It")
# Descomposición aditiva
descomposicion_aditiva <- decompose(
serie.imae.ts,
type = "additive"
)
# Gráfico de la descomposición
autoplot(descomposicion_aditiva) +
ggtitle("Descomposición Aditiva del IMAE de El Salvador (2018–2026 [marzo])") +
xlab("Años/Meses")
## Descomposición Aditiva usando libreria feasts
options(warn = -1)
# Descomposición Aditiva usando feasts
library(tsibble)
##
## Adjuntando el paquete: 'tsibble'
## The following objects are masked from 'package:base':
##
## intersect, setdiff, union
library(feasts)
## Cargando paquete requerido: fabletools
library(fabletools)
library(ggplot2)
Yt %>%
as_tsibble() %>%
model(
classical_decomposition(value, type = "additive")
) %>%
components() %>%
autoplot() +
labs(
title = "Descomposición Clásica Aditiva del IMAE de El Salvador (2018–2026 [marzo])"
) +
xlab("Años/Meses")
# Componente Tendencia-Ciclo mediante media móvil centrada de 12 meses
Tt <- ma(serie.imae.ts, 12, centre = TRUE)
# Gráfico de la tendencia-ciclo
autoplot(Tt) +
ggtitle("Componente Tendencia-Ciclo del IMAE de El Salvador (2018–2026 [marzo])") +
xlab("Años/Meses") +
ylab("Tt")
## Cálculo de Factores Estacionales [St]
# Cálculo de Factores Estacionales (St)
# Serie sin tendencia
SI <- Yt / Tt
# Promedio de los índices estacionales por mes
St <- tapply(SI, cycle(SI), mean, na.rm = TRUE)
# En el modelo multiplicativo los factores estacionales deben promediar 1
St <- St * 12 / sum(St)
# Generar la serie completa de factores estacionales
St <- rep(St, len = length(Yt)) %>%
ts(start = c(2018, 1), frequency = 12)
# Gráfico de los factores estacionales
autoplot(St) +
ggtitle("Factores Estacionales del IMAE de El Salvador (2018–2026 [marzo])") +
xlab("Años/Meses") +
ylab("Factor Estacional")
## Cálculo del Componente Irregular [It]
# Componente irregular
It <- Yt / (Tt * St)
# Gráfico de la componente irregular
autoplot(It) +
ggtitle("Componente Irregular del IMAE de El Salvador (2018–2026 [marzo])") +
xlab("Años/Meses") +
ylab("It")
## Descomposición Multiplicativa (usando la libreria stats)
# Descomposición multiplicativa
descomposicion_multiplicativa <- decompose(
serie.imae.ts,
type = "multiplicative"
)
# Gráfico de la descomposición
autoplot(descomposicion_multiplicativa) +
ggtitle("Descomposición Multiplicativa del IMAE de El Salvador (2018–2026 [marzo])") +
xlab("Años/Meses")
## Descomposición Multiplicativa usando libreria feasts
library(tsibble)
library(feasts)
library(fabletools)
library(ggplot2)
Yt %>%
as_tsibble() %>%
model(
classical_decomposition(value, type = "multiplicative")
) %>%
components() %>%
autoplot() +
labs(
title = "Descomposición Clásica Multiplicativa del IMAE de El Salvador (2018–2026 [marzo])"
) +
xlab("Años/Meses")
library(TSstudio)
# Descomposición aditiva
ts_decompose(
Yt,
type = "additive",
showline = TRUE
)
library(TSstudio)
# Análisis de los valores estacionales
ts_seasonal(
Yt,
type = "box",
title = "Análisis de Valores Estacionales del IMAE de El Salvador (2018–2026 [marzo])"
)