Usando los datos incluidos en el archivo datos_PIB_trime_CA.xlsx:

• Aplique el filtro HP para cada uno de los países de Centroamérica, para los periodos disponibles para cada país

• represente sus resultados de forma gráfica:

o 1. Usando la versión personalizada

o 2. usando la representación rápida.

o En todos los gráficos indique el país y el periodo al que corresponden los datos.

Costa Rica

1. Usando la versión personalizada

library(readxl)
library(mFilter)
library(forecast)
library(tidyr)
library(dplyr)

# --- Importación del archivo ---
ruta_archivo <- "C:/Users/50370/Downloads/datos_PIB_trim_CA.xlsx"
base <- read_excel(ruta_archivo, skip = 4)

# --- Ajuste de nombres de columnas ---
colnames(base) <- c("Fecha", "Costa_Rica", "El_Salvador", "Guatemala", "Honduras",
                    "Nicaragua", "R_Dominicana", "Panama")

# --- Limpieza general de la tabla ---
base <- base %>%
  filter(!is.na(Fecha)) %>%              # se descartan filas vacías
  mutate(across(-Fecha, ~na_if(.x, "--"))) %>% 
  mutate(across(-Fecha, as.numeric))

# --- Selección del PIB de Costa Rica ---
cr <- base %>% filter(!is.na(Costa_Rica))

# --- Construcción de la serie temporal ---
PIB_cr <- ts(cr$Costa_Rica,
             start = c(as.numeric(substr(cr$Fecha[1], 1, 4)), 1),
             frequency = 4)

# --- Aplicación del Filtro Hodrick–Prescott ---
hp_result_cr <- hpfilter(PIB_cr, freq = 1600)

tendencia_cr <- hp_result_cr$trend
ciclo_cr <- hp_result_cr$cycle

# --- Preparación del rango temporal para el título ---
rango_tiempo <- paste0(cr$Fecha[1], " a ", cr$Fecha[nrow(cr)])

# --- Visualización del PIB con tendencia ---
plot(PIB_cr, type = "l",
     main = paste("Tendencia del PIB de Costa Rica (Filtro HP)\nPeriodo:", rango_tiempo),
     xlab = "Tiempo", ylab = "PIB (Serie Original)",
     col = "gray30", lwd = 1.5)

lines(tendencia_cr, col = "firebrick", lwd = 2.2)

legend("topleft",
       legend = c("Serie Original", "Tendencia HP"),
       col = c("gray30", "firebrick"), 
       lty = 1, lwd = 2)

# --- Gráfico del ciclo económico ---
plot(ciclo_cr, type = "l",
     main = paste("Componente ciclico - Costa Rica\nPeriodo:", rango_tiempo),
     xlab = "Tiempo",
     ylab = "Variación Cíclica",
     col = "darkgreen",
     lwd = 2)

# línea horizontal para mejorar la lectura:
abline(h = 0, col = "gray50", lty = 2)

2. Usando la representación rápida

plot(hp_result_cr, ask = FALSE)

periodo_cr <- paste0(cr$Fecha[1], " a ", cr$Fecha[nrow(cr)])

mtext(
  paste("Costa Rica (", periodo_cr, ")"),
  side = 3, line = -2, cex = 0.9, outer = TRUE, font = 2
)

El Salvador

1. Usando la versión personalizada

# --- Selección del PIB de El Salvador ---
sv <- base %>% filter(!is.na(El_Salvador))

# --- Construcción de la serie temporal ---
PIB_sv <- ts(sv$El_Salvador,
             start = c(as.numeric(substr(sv$Fecha[1], 1, 4)), 1),
             frequency = 4)

# --- Aplicación del Filtro Hodrick–Prescott ---
hp_result_sv <- hpfilter(PIB_sv, freq = 1600)

tendencia_sv <- hp_result_sv$trend
ciclo_sv <- hp_result_sv$cycle

# --- Preparación del rango temporal para el título ---
rango_tiempo <- paste0(sv$Fecha[1], " a ", sv$Fecha[nrow(sv)])

# --- Visualización del PIB con tendencia ---
plot(PIB_sv, type = "l",
     main = paste("Tendencia del PIB de El Salvador (Filtro HP)\nPeriodo:", rango_tiempo),
     xlab = "Tiempo", ylab = "PIB (Serie Original)",
     col = "gray30", lwd = 1.5)

lines(tendencia_sv, col = "firebrick", lwd = 2.2)

legend("topleft",
       legend = c("Serie Original", "Tendencia HP"),
       col = c("gray30", "firebrick"), 
       lty = 1, lwd = 2)

# --- Gráfico del ciclo económico ---
plot(ciclo_sv, type = "l",
     main = paste("Componente cíclico - El Salvador\nPeriodo:", rango_tiempo),
     xlab = "Tiempo",
     ylab = "Variación Cíclica",
     col = "blue",
     lwd = 2)

# línea horizontal para mejorar la lectura:
abline(h = 0, col = "gray50", lty = 2)

2. Usando la representación rápida

plot(hp_result_sv, ask = FALSE)

periodo_sv <- paste0(sv$Fecha[1], " a ", sv$Fecha[nrow(sv)])

mtext(
  paste("El Salvador (", periodo_sv, ")"),
  side = 3, line = -2, cex = 0.9, outer = TRUE, font = 2
)

Guatemala

1. Usando la versión personalizada

# --- Selección del PIB de Guatemala ---
gt <- base %>% filter(!is.na(Guatemala))

# --- Construcción de la serie temporal ---
PIB_gt <- ts(gt$Guatemala,
             start = c(as.numeric(substr(gt$Fecha[1], 1, 4)), 1),
             frequency = 4)

# --- Aplicación del Filtro Hodrick–Prescott ---
hp_result_gt <- hpfilter(PIB_gt, freq = 1600)

tendencia_gt <- hp_result_gt$trend
ciclo_gt <- hp_result_gt$cycle

# --- Preparación del rango temporal para el título ---
rango_tiempo <- paste0(gt$Fecha[1], " a ", gt$Fecha[nrow(gt)])

# --- Visualización del PIB con tendencia ---
plot(PIB_gt, type = "l",
     main = paste("Tendencia del PIB de Guatemala (Filtro HP)\nPeriodo:", rango_tiempo),
     xlab = "Tiempo", ylab = "PIB (Serie Original)",
     col = "gray30", lwd = 1.5)

lines(tendencia_gt, col = "firebrick", lwd = 2.2)

legend("topleft",
       legend = c("Serie Original", "Tendencia HP"),
       col = c("gray30", "firebrick"),
       lty = 1, lwd = 2)

# --- Gráfico del ciclo económico ---
plot(ciclo_gt, type = "l",
     main = paste("Componente cíclico - Guatemala\nPeriodo:", rango_tiempo),
     xlab = "Tiempo",
     ylab = "Variación Cíclica",
     col = "skyblue",
     lwd = 2)

# línea horizontal para mejorar la lectura:
abline(h = 0, col = "gray50", lty = 2)

2. Usando la representación rápida

plot(hp_result_gt, ask = FALSE)

periodo_gt <- paste0(gt$Fecha[1], " a ", gt$Fecha[nrow(gt)])

mtext(
  paste("Guatemala (", periodo_gt, ")"),
  side = 3, line = -2, cex = 0.9, outer = TRUE, font = 2
)

Honduras

1. Usando la versión personalizada

# --- Selección del PIB de Honduras ---
hn <- base %>% filter(!is.na(Honduras))

# --- Construcción de la serie temporal ---
PIB_hn <- ts(hn$Honduras,
             start = c(as.numeric(substr(hn$Fecha[1], 1, 4)), 1),
             frequency = 4)

# --- Aplicación del Filtro Hodrick–Prescott ---
hp_result_hn <- hpfilter(PIB_hn, freq = 1600)

tendencia_hn <- hp_result_hn$trend
ciclo_hn <- hp_result_hn$cycle

# --- Preparación del rango temporal para el título ---
rango_tiempo <- paste0(hn$Fecha[1], " a ", hn$Fecha[nrow(hn)])

# --- Visualización del PIB con tendencia ---
plot(PIB_hn, type = "l",
     main = paste("Tendencia del PIB de Honduras (Filtro HP)\nPeriodo:", rango_tiempo),
     xlab = "Tiempo", ylab = "PIB (Serie Original)",
     col = "gray30", lwd = 1.5)

lines(tendencia_hn, col = "firebrick", lwd = 2.2)

legend("topleft",
       legend = c("Serie Original", "Tendencia HP"),
       col = c("gray30", "firebrick"),
       lty = 1, lwd = 2)

# --- Gráfico del ciclo económico ---
plot(ciclo_hn, type = "l",
     main = paste("Componente cíclico - Honduras\nPeriodo:", rango_tiempo),
     xlab = "Tiempo",
     ylab = "Variación Cíclica",
     col = "deepskyblue3",
     lwd = 2)

# línea horizontal para mejorar la lectura:
abline(h = 0, col = "gray50", lty = 2)

2. Usando la representación rápida

plot(hp_result_hn, ask = FALSE)

periodo_hn <- paste0(hn$Fecha[1], " a ", hn$Fecha[nrow(hn)])

mtext(
  paste("Honduras (", periodo_hn, ")"),
  side = 3, line = -2, cex = 0.9, outer = TRUE, font = 2
)

Nicaragua

1.Usando la versión personalizada

# --- Selección del PIB de Nicaragua ---
ni <- base %>% filter(!is.na(Nicaragua))

# --- Construcción de la serie temporal ---
PIB_ni <- ts(ni$Nicaragua,
             start = c(as.numeric(substr(ni$Fecha[1], 1, 4)), 1),
             frequency = 4)

# --- Aplicación del Filtro Hodrick–Prescott ---
hp_result_ni <- hpfilter(PIB_ni, freq = 1600)

tendencia_ni <- hp_result_ni$trend
ciclo_ni <- hp_result_ni$cycle

# --- Preparación del rango temporal para el título ---
rango_tiempo <- paste0(ni$Fecha[1], " a ", ni$Fecha[nrow(ni)])

# --- Visualización del PIB con tendencia ---
plot(PIB_ni, type = "l",
     main = paste("Tendencia del PIB de Nicaragua (Filtro HP)\nPeriodo:", rango_tiempo),
     xlab = "Tiempo", ylab = "PIB (Serie Original)",
     col = "gray30", lwd = 1.5)

lines(tendencia_ni, col = "firebrick", lwd = 2.2)

legend("topleft",
       legend = c("Serie Original", "Tendencia HP"),
       col = c("gray30", "firebrick"),
       lty = 1, lwd = 2)

# --- Gráfico del ciclo económico ---
plot(ciclo_ni, type = "l",
     main = paste("Componente cíclico - Nicaragua\nPeriodo:", rango_tiempo),
     xlab = "Tiempo",
     ylab = "Variación Cíclica",
     col = "royalblue3",
     lwd = 2)

# línea horizontal para mejorar la lectura:
abline(h = 0, col = "gray50", lty = 2)

2. Usando la representación rápida

plot(hp_result_ni, ask = FALSE)

periodo_ni <- paste0(ni$Fecha[1], " a ", ni$Fecha[nrow(ni)])

mtext(
  paste("Nicaragua (", periodo_ni, ")"),
  side = 3, line = -2, cex = 0.9, outer = TRUE, font = 2
)

República Dominicana

1. Usando la versión personalizada

# --- Selección del PIB de República Dominicana ---
rd <- base %>% filter(!is.na(R_Dominicana))

# --- Construcción de la serie temporal ---
PIB_rd <- ts(rd$R_Dominicana,
             start = c(as.numeric(substr(rd$Fecha[1], 1, 4)), 1),
             frequency = 4)

# --- Aplicación del Filtro Hodrick–Prescott ---
hp_result_rd <- hpfilter(PIB_rd, freq = 1600)

tendencia_rd <- hp_result_rd$trend
ciclo_rd <- hp_result_rd$cycle

# --- Preparación del rango temporal para el título ---
rango_tiempo <- paste0(rd$Fecha[1], " a ", rd$Fecha[nrow(rd)])

# --- Visualización del PIB con tendencia ---
plot(PIB_rd, type = "l",
     main = paste("Tendencia del PIB de Republica Dominicana (Filtro HP)\nPeriodo:", rango_tiempo),
     xlab = "Tiempo", 
     ylab = "PIB (Serie Original)",
     col = "gray30", lwd = 1.5)

lines(tendencia_rd, col = "firebrick", lwd = 2.2)

legend("topleft",
       legend = c("Serie Original", "Tendencia HP"),
       col = c("gray30", "firebrick"), 
       lty = 1, lwd = 2)

## --- Gráfico del ciclo económico ---
plot(ciclo_rd, type = "l",
     main = paste("Componente Cíclico - Republica Dominicana\nPeriodo:", rango_tiempo),
     xlab = "Tiempo",
     ylab = "Variación Cíclica",
     col = "firebrick",
     lwd = 2)

# línea horizontal para mejorar la lectura:
abline(h = 0, col = "gray50", lty = 2)

2. Usando la representación rápida

plot(hp_result_rd, ask = FALSE)

periodo_rd <- paste0(rd$Fecha[1], " a ", rd$Fecha[nrow(rd)])

mtext(
  paste("República Dominicana (", periodo_rd, ")"),
  side = 3, line = -2, cex = 0.9, outer = TRUE, font = 2
)

Panamá

1. Usando la versión personalizada

# --- Selección del PIB de Panamá ---
pa <- base %>% filter(!is.na(Panama))

# --- Construcción de la serie temporal ---
PIB_pa <- ts(pa$Panama,
             start = c(as.numeric(substr(pa$Fecha[1], 1, 4)), 1),
             frequency = 4)

# --- Aplicación del Filtro Hodrick–Prescott ---
hp_result_pa <- hpfilter(PIB_pa, freq = 1600)

tendencia_pa <-hp_result_pa$trend
ciclo_pa <- hp_result_pa$cycle

# --- Preparación del rango temporal para el título ---
rango_tiempo <- paste0(pa$Fecha[1], " a ", pa$Fecha[nrow(pa)])

# --- Visualización del PIB con tendencia ---
plot(PIB_pa, type = "l",
     main = paste("Tendencia del PIB de Panamá (Filtro HP)\nPeriodo:", rango_tiempo),
     xlab = "Tiempo", 
     ylab = "PIB (Serie Original)",
     col = "gray30", lwd = 1.5)

lines(tendencia_pa, col = "firebrick4", lwd = 2.2)

legend("topleft",
       legend = c("Serie Original", "Tendencia HP"),
       col = c("gray30", "firebrick4"), 
       lty = 1, lwd = 2)

# --- Gráfico del ciclo económico ---
plot(ciclo_pa, type = "l",
     main = paste("Componente cíclico - Panamá\nPeriodo:", rango_tiempo),
     xlab = "Tiempo",
     ylab = "Variación Cíclica",
     col = "firebrick4",
     lwd = 2)

# línea horizontal para mejorar la lectura:
abline(h = 0, col = "gray50", lty = 2)

2. Usando la representación rápida

plot(hp_result_pa, ask = FALSE)

periodo_pa <- paste0(pa$Fecha[1], " a ", pa$Fecha[nrow(pa)])

mtext(
  paste("Panamá (", periodo_pa, ")"),
  side = 3, line = -2, cex = 0.9, outer = TRUE, font = 2
)