A34-Aplicación del Filtro de Hodrick Prescott

UNIVERSIDAD DE EL SALVADOR
FACULTAD DE CIENCIAS ECONÓMICAS
ESCUELA DE ECONOMÍA
CICLO II - 2024
“TAREA A34-Aplicación del Filtro de Hodrick Prescott”
Asignatura:
Métodos para el análisis Económico
Grupo teórico:
Gt 03
Docente:
MSF. Carlos Ademir Pérez Alas
Integrantes:
Fátima Lourdes Alas Duarte AD22008
Gabriela Alexandra Belloso Martínez BM22010
Vanessa Iveth López González LG20034
Fátima Alejandra Rivas Alvarado RA22087
Ciudad Universitaria, 7 de Enero de 2025

Carga de datos

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

# Cargar los datos
file_path <- "./datos_PIB_trim_CA.xlsx"
data <- read_excel(file_path, skip = 4)

# Renombrar columnas
colnames(data) <- c('Fechas', 'Costa_Rica', 'El_Salvador', 'Guatemala', 'Honduras', 
                    'Nicaragua', 'Republica_Dominicana', 'Panama')

# Limpiar datos
data <- data %>% 
  filter(!is.na(Fechas)) %>% 
  mutate(across(-Fechas, ~na_if(.x, "--"))) %>% 
  mutate(across(-Fechas, as.numeric))

Costa Rica

Implementación Personalizada

# Filtrar datos para Costa Rica
data_costa_rica <- data %>% filter(!is.na(Costa_Rica))

# Crear la serie temporal para Costa Rica
PIB_trim <- ts(data_costa_rica$Costa_Rica, 
               start = c(as.numeric(substr(data_costa_rica$Fechas[1], 1, 4)), 1), 
               frequency = 4)

# Aplicar el filtro Hodrick-Prescott
hp_result <- hpfilter(PIB_trim, freq = 1600)

# Extraer componentes
trend <- hp_result$trend
cycle <- hp_result$cycle

# Periodo de los datos
inicio <- data_costa_rica$Fechas[1]
fin <- data_costa_rica$Fechas[nrow(data_costa_rica)]
periodo <- paste(inicio, "-", fin)

# Gráfico personalizado
plot(PIB_trim, type = "l", main = paste("Filtro HP - Costa Rica (", periodo, ")"),
     ylab = "PIB", xlab = "Tiempo", col = "black", lwd = 1)
lines(trend, col = "red", lwd = 2)
legend("topleft", legend = c("PIB Original", "Tendencia (Filtro HP)"), 
       col = c("black", "red"), lty = 1, lwd = 2)

# Gráfico del componente cíclico
plot(cycle, type = "l", main = paste("Componente Ciclico - Costa Rica (", periodo, ")"),
     ylab = "Ciclo", xlab = "Tiempo", col = "blue", lwd = 1)

Implementación rapida

# Representación rápida
plot(hp_result, ask = FALSE)

El Salvador

Implementación Personalizada

# Filtrar datos para El Salvador
data_el_salvador <- data %>% filter(!is.na(El_Salvador))

# Crear la serie temporal para El Salvador
PIB_trim <- ts(data_el_salvador$El_Salvador, 
               start = c(as.numeric(substr(data_el_salvador$Fechas[1], 1, 4)), 1), 
               frequency = 4)

# Aplicar el filtro Hodrick-Prescott
hp_result <- hpfilter(PIB_trim, freq = 1600)

# Extraer componentes
trend <- hp_result$trend
cycle <- hp_result$cycle

# Periodo de los datos
inicio <- data_el_salvador$Fechas[1]
fin <- data_el_salvador$Fechas[nrow(data_el_salvador)]
periodo <- paste(inicio, "-", fin)

# Gráfico personalizado
plot(PIB_trim, type = "l", main = paste("Filtro HP - El Salvador (", periodo, ")"),
     ylab = "PIB", xlab = "Tiempo", col = "black", lwd = 1)
lines(trend, col = "red", lwd = 2)
legend("topleft", legend = c("PIB Original", "Tendencia (Filtro HP)"), 
       col = c("black", "red"), lty = 1, lwd = 2)

# Gráfico del componente cíclico
plot(cycle, type = "l", main = paste("Componente Ciclico - El Salvador (", periodo, ")"),
     ylab = "Ciclo", xlab = "Tiempo", col = "blue", lwd = 1)

Implementación rapida

# Representación rápida
plot(hp_result, ask = FALSE)

Guatemala

Implementación Personalizado

# Filtrar datos para Guatemala
data_guatemala <- data %>% filter(!is.na(Guatemala))

# Crear la serie temporal para Guatemala
PIB_trim <- ts(data_guatemala$Guatemala, 
               start = c(as.numeric(substr(data_guatemala$Fechas[1], 1, 4)), 1), 
               frequency = 4)

# Aplicar el filtro Hodrick-Prescott
hp_result <- hpfilter(PIB_trim, freq = 1600)

# Extraer componentes
trend <- hp_result$trend
cycle <- hp_result$cycle

# Periodo de los datos
inicio <- data_guatemala$Fechas[1]
fin <- data_guatemala$Fechas[nrow(data_guatemala)]
periodo <- paste(inicio, "-", fin)

# Gráfico personalizado
plot(PIB_trim, type = "l", main = paste("Filtro HP - Guatemala (", periodo, ")"),
     ylab = "PIB", xlab = "Tiempo", col = "black", lwd = 1)
lines(trend, col = "red", lwd = 2)
legend("topleft", legend = c("PIB Original", "Tendencia (Filtro HP)"), 
       col = c("black", "red"), lty = 1, lwd = 2)

# Gráfico del componente cíclico
plot(cycle, type = "l", main = paste("Componente Ciclico - guatemala (", periodo, ")"),
     ylab = "Ciclo", xlab = "Tiempo", col = "blue", lwd = 1)

Implementación rapida

# Representación rápida
plot(hp_result, ask = FALSE)

Honduras

Implementación Personalizada

# Filtrar datos para Honduras
data_honduras <- data %>% filter(!is.na(Honduras))

# Crear la serie temporal para Honduras
PIB_trim <- ts(data_honduras$Honduras, 
               start = c(as.numeric(substr(data_honduras$Fechas[1], 1, 4)), 1), 
               frequency = 4)

# Aplicar el filtro Hodrick-Prescott
hp_result <- hpfilter(PIB_trim, freq = 1600)

# Extraer componentes
trend <- hp_result$trend
cycle <- hp_result$cycle

# Periodo de los datos
inicio <- data_honduras$Fechas[1]
fin <- data_honduras$Fechas[nrow(data_honduras)]
periodo <- paste(inicio, "-", fin)

# Gráfico personalizado
plot(PIB_trim, type = "l", main = paste("Filtro HP - Honduras (", periodo, ")"),
     ylab = "PIB", xlab = "Tiempo", col = "black", lwd = 1)
lines(trend, col = "red", lwd = 2)
legend("topleft", legend = c("PIB Original", "Tendencia (Filtro HP)"), 
       col = c("black", "red"), lty = 1, lwd = 2)

# Gráfico del componente cíclico
plot(cycle, type = "l", main = paste("Componente Ciclico - Honduras (", periodo, ")"),
     ylab = "Ciclo", xlab = "Tiempo", col = "blue", lwd = 1)

Implementación rapida

# Representación rápida
plot(hp_result, ask = FALSE)

Nicaragua

Implementación Personalizada

# Filtrar datos para Nicaragua
data_nicaragua <- data %>% filter(!is.na(Nicaragua))

# Crear la serie temporal para Nicaragua
PIB_trim <- ts(data_nicaragua$Nicaragua, 
               start = c(as.numeric(substr(data_nicaragua$Fechas[1], 1, 4)), 1), 
               frequency = 4)

# Aplicar el filtro Hodrick-Prescott
hp_result <- hpfilter(PIB_trim, freq = 1600)

# Extraer componentes
trend <- hp_result$trend
cycle <- hp_result$cycle

# Periodo de los datos
inicio <- data_nicaragua$Fechas[1]
fin <- data_nicaragua$Fechas[nrow(data_nicaragua)]
periodo <- paste(inicio, "-", fin)

# Gráfico personalizado
plot(PIB_trim, type = "l", main = paste("Filtro HP - Nicaragua (", periodo, ")"),
     ylab = "PIB", xlab = "Tiempo", col = "black", lwd = 1)
lines(trend, col = "red", lwd = 2)
legend("topleft", legend = c("PIB Original", "Tendencia (Filtro HP)"), 
       col = c("black", "red"), lty = 1, lwd = 2)

# Gráfico del componente cíclico
plot(cycle, type = "l", main = paste("Componente Ciclico - Nicaragua (", periodo, ")"),
     ylab = "Ciclo", xlab = "Tiempo", col = "blue", lwd = 1)

Implementación rapida

# Representación rápida
plot(hp_result, ask = FALSE)

República Dominicana

Implementación Personalizada

# Filtrar datos para República Dominicana
data_republica_dominicana <- data %>% filter(!is.na(Republica_Dominicana))

# Crear la serie temporal para República Dominicana
PIB_trim <- ts(data_republica_dominicana$Republica_Dominicana, 
               start = c(as.numeric(substr(data_republica_dominicana$Fechas[1], 1, 4)), 1), 
               frequency = 4)

# Aplicar el filtro Hodrick-Prescott
hp_result <- hpfilter(PIB_trim, freq = 1600)

# Extraer componentes
trend <- hp_result$trend
cycle <- hp_result$cycle

# Periodo de los datos
inicio <- data_republica_dominicana$Fechas[1]
fin <- data_republica_dominicana$Fechas[nrow(data_republica_dominicana)]
periodo <- paste(inicio, "-", fin)

# Gráfico personalizado
plot(PIB_trim, type = "l", main = paste("Filtro HP - Republica Dominicana (", periodo, ")"),
     ylab = "PIB", xlab = "Tiempo", col = "black", lwd = 1)
lines(trend, col = "red", lwd = 2)
legend("topleft", legend = c("PIB Original", "Tendencia (Filtro HP)"), 
       col = c("black", "red"), lty = 1, lwd = 2)

# Gráfico del componente cíclico
plot(cycle, type = "l", main = paste("Componente Ciclico - República Dominicana (", periodo, ")"),
     ylab = "Ciclo", xlab = "Tiempo", col = "blue", lwd = 1)

Implementación rapida

# Representación rápida
plot(hp_result, ask = FALSE)

Panamá

Implementación Personalizada

# Filtrar datos para Republica Panamá
data_panama <- data %>% filter(!is.na(Panama))

# Crear la serie temporal para Panamá
PIB_trim <- ts(data_panama$Panama, 
               start = c(as.numeric(substr(data_panama$Fechas[1], 1, 4)), 1), 
               frequency = 4)

# Aplicar el filtro Hodrick-Prescott
hp_result <- hpfilter(PIB_trim, freq = 1600)

# Extraer componentes
trend <- hp_result$trend
cycle <- hp_result$cycle

# Periodo de los datos
inicio <- data_panama$Fechas[1]
fin <- data_panama$Fechas[nrow(data_panama)]
periodo <- paste(inicio, "-", fin)

# Gráfico personalizado
plot(PIB_trim, type = "l", main = paste("Filtro HP - Panamá (", periodo, ")"),
     ylab = "PIB", xlab = "Tiempo", col = "black", lwd = 1)
lines(trend, col = "red", lwd = 2)
legend("topleft", legend = c("PIB Original", "Tendencia (Filtro HP)"), 
       col = c("black", "red"), lty = 1, lwd = 2)

# Gráfico del componente cíclico
plot(cycle, type = "l", main = paste("Componente Ciclico - Panamá (", periodo, ")"),
     ylab = "Ciclo", xlab = "Tiempo", col = "blue", lwd = 1)

Implementación rapida

# Representación rápida
plot(hp_result, ask = FALSE)