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.
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)# --- 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)# --- 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)# --- 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)# --- 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)# --- 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)# --- 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)