Carga de datos
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)
}