Aplicación

Carga de datos

library(readxl)
datos_PIB_trim_CA <- read_excel("C:/Users/HP/Downloads/datos_PIB_trim_CA.xlsx")
library(mFilter)

#Seleccionamos las columnas de PIB (desde la 2 hasta la 8)
datos_PIB_trim_CA <- datos_PIB_trim_CA[, 2:8]

#Renombramos las columnas con los nombres correctos
names(datos_PIB_trim_CA) <- c("Costa_Rica",
                   "El_Salvador",
                   "Guatemala",
                   "Honduras",
                   "Nicaragua",
                   "Republica_Dominicana",
                   "Panama")

#Convertir "--" en NA
datos_PIB_trim_CA[datos_PIB_trim_CA == "--"] <- NA

#Convertir valores a numérico
datos_PIB_trim_CA <- data.frame(lapply(datos_PIB_trim_CA, as.numeric))

#Creamos lista para guardar resultados del filtro HP
resultados_HP <- list()

#Aplicamos el filtro HP a cada país
for (pais in names(datos_PIB_trim_CA)) {
  
  # Serie trimestral desde 1990-I hasta 2024-II
  serie_trim <- ts(datos_PIB_trim_CA[[pais]], start = c(1990, 1), frequency = 4)
  
  # Aplicar el filtro de Hodrick-Prescott
  hp_res <- hpfilter(serie_trim, freq = 1600)
  
  # Guardar tendencia y ciclo
  resultados_HP[[pais]] <- list(
    tendencia = hp_res$trend,
    ciclo = hp_res$cycle
  )
# Representación gráfica
  plot(serie_trim, type = "l",
       main = paste("Filtro HP -", pais),
       ylab = "PIB", xlab = "Tiempo")
  lines(hp_res$trend, col = "red", lwd = 2)
  legend("topleft",
         legend = c("PIB Original", "Tendencia HP"),
         col = c("black", "red"), lty = 1, lwd = 2)  
}