A34-Aplicación del Filtro de Hodrick Prescott [Tarea Grupal]

UNIVERSIDAD DE EL SALVADOR


FACULTAD DE CIENCIAS ECONÓMICAS


ESCUELA DE ECONOMÍA CICLO II-2024



Tema: A34-Aplicación del Filtro de Hodrick Prescott [Tarea Grupal].


Materia: Métodos para el Análisis Económico


Docente: MSF. Carlos Ademir Pérez Alas


GT: 03


Estudiantes:
Nombres y número de carnet
INTEGRANTES CARNET
Sandra Maribel Aparicio Fuentes AF22025
Nubia Linette Beltrán Hernández BH21010
Génesis Melissa Siguenza Rivas SR22041

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:

Costa Rica

1. Usando la versión personalizada y

options(scipen = 999)
library(readxl)
library(mFilter)
library(forecast)

# Cargar los datos
PIB_trimestral_CA <- read_excel("C:/Users/MINEDUCYT/Downloads/datos_PIB_trim_CA.xlsx")

# Especificar el país (en este caso, Costa Rica)
pais <- colnames(PIB_trimestral_CA)[2]

# Convertir la columna a numérico y manejar valores faltantes
  PIB_pais_data <- as.numeric(PIB_trimestral_CA[[pais]])
  PIB_pais_data <- na.omit(PIB_pais_data)
  
# Verificar si la serie tiene suficientes datos
if (length(PIB_pais_data) > 1) {

# Crear la serie temporal para Costa Rica
PIB_CostaRica <- ts(PIB_pais_data, start = c(1990, 1), frequency = 4)

# Determinar el periodo de la serie
  start_period <- floor(time(PIB_CostaRica)[1])  # Año inicial
  end_period <- floor(time(PIB_CostaRica)[length(PIB_CostaRica)])  # Año final

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

# Extraer la tendencia y el componente cíclico
trend <- hp_result$trend
cycle <- hp_result$cycle

# Graficar los resultados
plot(PIB_CostaRica, type = "l", 
     main = paste("Filtro de Hodrick-Prescott - Costa Rica","\nPeriodo:", start_period, "-", end_period), 
     ylab = "PIB", xlab = "Tiempo")
lines(trend, col = "red", lwd = 2)
legend("topleft", legend = c("PIB Original", "Tendencia (Filtro HP)"), col = c("black", "red"), lty = 1, lwd = 2)

} else {
  message(paste("La columna", pais, "no tiene suficientes datos válidos."))
}

options(scipen = 999)
plot(cycle, type = "l", main = "Componente Ciclico", ylab = "Ciclo", xlab = "Tiempo")

2. usando la representación rápida.

options(scipen = 999)
plot(hp_result,ask = FALSE)

El Salvador

1. Usando la versión personalizada y

options(scipen = 999)
library(readxl)
library(mFilter)
library(forecast)

# Cargar los datos
PIB_trimestral_CA <- read_excel("C:/Users/MINEDUCYT/Downloads/datos_PIB_trim_CA.xlsx")

# Especificar el país (en este caso, El Salvador)
pais <- colnames(PIB_trimestral_CA)[2]

# Convertir la columna a numérico y manejar valores faltantes
PIB_pais_data <- as.numeric(PIB_trimestral_CA[[pais]])
PIB_pais_data <- na.omit(PIB_pais_data)

# Verificar si la serie tiene suficientes datos
if (length(PIB_pais_data) > 1) {

# Crear la serie temporal para el país especificado (El Salvador en este caso)
  PIB_ESA <- ts(PIB_pais_data, start = c(1990, 1), frequency = 4)

# Determinar el periodo de la serie
  start_period <- floor(time(PIB_ESA)[1])  # Año inicial
  end_period <- floor(time(PIB_ESA)[length(PIB_ESA)])  # Año final

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

# Extraer la tendencia y el componente cíclico
  trend <- hp_result$trend
  cycle <- hp_result$cycle

# Graficar los resultados
  plot(PIB_ESA, type = "l", 
       main = paste("Filtro de Hodrick-Prescott - El Salvador", "\nPeriodo:", start_period, "-", end_period), 
       ylab = "PIB", xlab = "Tiempo")
  lines(trend, col = "red", lwd = 2)
  legend("topleft", legend = c("PIB Original", "Tendencia (Filtro HP)"), col = c("black", "red"), lty = 1, lwd = 2)

} else {
  message(paste("La columna", pais, "no tiene suficientes datos válidos."))
}

options(scipen = 999)
plot(cycle, type = "l", main = "Componente Ciclico", ylab = "Ciclo", xlab = "Tiempo")

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

options(scipen = 999)
plot(hp_result,ask = FALSE)

Guatemala

o 1. Usando la versión personalizada y

options(scipen = 999)
library(readxl)
library(mFilter)
library(forecast)

# Cargar los datos
PIB_trimestral_CA <- read_excel("C:/Users/MINEDUCYT/Downloads/datos_PIB_trim_CA.xlsx")

# Especificar el país (en este caso, Guatemala)
pais <- colnames(PIB_trimestral_CA)[2]

# Convertir la columna a numérico y manejar valores faltantes
  PIB_pais_data <- as.numeric(PIB_trimestral_CA[[pais]])
  PIB_pais_data <- na.omit(PIB_pais_data)
  
# Verificar si la serie tiene suficientes datos
if (length(PIB_pais_data) > 1) {

# Crear la serie temporal para Guatemala
PIB_Guatemala <- ts(PIB_pais_data, start = c(1990, 1), frequency = 4)

# Determinar el periodo de la serie
  start_period <- floor(time(PIB_Guatemala)[1])  # Año inicial
  end_period <- floor(time(PIB_Guatemala)[length(PIB_Guatemala)])  # Año final

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

# Extraer la tendencia y el componente cíclico
trend <- hp_result$trend
cycle <- hp_result$cycle

# Graficar los resultados
plot(PIB_Guatemala, type = "l", 
     main = paste("Filtro de Hodrick-Prescott - Guatemala","\nPeriodo:", start_period, "-", end_period), 
     ylab = "PIB", xlab = "Tiempo")
lines(trend, col = "red", lwd = 2)
legend("topleft", legend = c("PIB Original", "Tendencia (Filtro HP)"), col = c("black", "red"), lty = 1, lwd = 2)

} else {
  message(paste("La columna", pais, "no tiene suficientes datos válidos."))
}

options(scipen = 999)
plot(cycle, type = "l", main = "Componente Ciclico", ylab = "Ciclo", xlab = "Tiempo")

2. usando la representación rápida.

options(scipen = 999)
plot(hp_result,ask = FALSE)

Honduras

1. Usando la versión personalizada y

options(scipen = 999)
library(readxl)
library(mFilter)
library(forecast)

# Cargar los datos
PIB_trimestral_CA <- read_excel("C:/Users/MINEDUCYT/Downloads/datos_PIB_trim_CA.xlsx")

# Especificar el país (en este caso, Honduras)
pais <- colnames(PIB_trimestral_CA)[2]

# Convertir la columna a numérico y manejar valores faltantes
  PIB_pais_data <- as.numeric(PIB_trimestral_CA[[pais]])
  PIB_pais_data <- na.omit(PIB_pais_data)
  
# Verificar si la serie tiene suficientes datos
if (length(PIB_pais_data) > 1) {

# Crear la serie temporal para Honduras
PIB_Honduras <- ts(PIB_pais_data, start = c(1990, 1), frequency = 4)

# Determinar el periodo de la serie
  start_period <- floor(time(PIB_Honduras)[1])  # Año inicial
  end_period <- floor(time(PIB_Honduras)[length(PIB_Honduras)])  # Año final

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

# Extraer la tendencia y el componente cíclico
trend <- hp_result$trend
cycle <- hp_result$cycle

# Graficar los resultados
plot(PIB_Honduras, type = "l", 
     main = paste("Filtro de Hodrick-Prescott - Honduras","\nPeriodo:", start_period, "-", end_period), 
     ylab = "PIB", xlab = "Tiempo")
lines(trend, col = "red", lwd = 2)
legend("topleft", legend = c("PIB Original", "Tendencia (Filtro HP)"), col = c("black", "red"), lty = 1, lwd = 2)

} else {
  message(paste("La columna", pais, "no tiene suficientes datos válidos."))
}

options(scipen = 999)
plot(cycle, type = "l", main = "Componente Ciclico", ylab = "Ciclo", xlab = "Tiempo")

2. usando la representación rápida.

options(scipen = 999)
plot(hp_result,ask = FALSE)

Nicaragua

1. Usando la versión personalizada y

options(scipen = 999)
library(readxl)
library(mFilter)
library(forecast)

# Cargar los datos
PIB_trimestral_CA <- read_excel("C:/Users/MINEDUCYT/Downloads/datos_PIB_trim_CA.xlsx")

# Especificar el país (en este caso, Nicaragua)
pais <- colnames(PIB_trimestral_CA)[2]

# Convertir la columna a numérico y manejar valores faltantes
  PIB_pais_data <- as.numeric(PIB_trimestral_CA[[pais]])
  PIB_pais_data <- na.omit(PIB_pais_data)
  
# Verificar si la serie tiene suficientes datos
if (length(PIB_pais_data) > 1) {

# Crear la serie temporal para Nicaragua
PIB_Nicaragua <- ts(PIB_pais_data, start = c(1990, 1), frequency = 4)

# Determinar el periodo de la serie
  start_period <- floor(time(PIB_Nicaragua)[1])  # Año inicial
  end_period <- floor(time(PIB_Nicaragua)[length(PIB_Nicaragua)])  # Año final

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

# Extraer la tendencia y el componente cíclico
trend <- hp_result$trend
cycle <- hp_result$cycle

# Graficar los resultados
plot(PIB_Nicaragua, type = "l", 
     main = paste("Filtro de Hodrick-Prescott - Nicaragua","\nPeriodo:", start_period, "-", end_period), 
     ylab = "PIB", xlab = "Tiempo")
lines(trend, col = "red", lwd = 2)
legend("topleft", legend = c("PIB Original", "Tendencia (Filtro HP)"), col = c("black", "red"), lty = 1, lwd = 2)

} else {
  message(paste("La columna", pais, "no tiene suficientes datos válidos."))
}

options(scipen = 999)
plot(cycle, type = "l", main = "Componente Ciclico", ylab = "Ciclo", xlab = "Tiempo")

2. usando la representación rápida.

options(scipen = 999)
plot(hp_result,ask = FALSE)

República Dominicana

1. Usando la versión personalizada y

options(scipen = 999)
library(readxl)
library(mFilter)
library(forecast)

# Cargar los datos
PIB_trimestral_CA <- read_excel("C:/Users/MINEDUCYT/Downloads/datos_PIB_trim_CA.xlsx")

# Especificar el país (en este caso, República Dominicana)
pais <- colnames(PIB_trimestral_CA)[2]

# Convertir la columna a numérico y manejar valores faltantes
  PIB_pais_data <- as.numeric(PIB_trimestral_CA[[pais]])
  PIB_pais_data <- na.omit(PIB_pais_data)
  
# Verificar si la serie tiene suficientes datos
if (length(PIB_pais_data) > 1) {

# Crear la serie temporal para República Dominicana
PIB_Rep_Dominicana <- ts(PIB_pais_data, start = c(1990, 1), frequency = 4)

# Determinar el periodo de la serie
  start_period <- floor(time(PIB_Rep_Dominicana)[1])  # Año inicial
  end_period <- floor(time(PIB_Rep_Dominicana)[length(PIB_Rep_Dominicana)])  # Año final

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

# Extraer la tendencia y el componente cíclico
trend <- hp_result$trend
cycle <- hp_result$cycle

# Graficar los resultados
plot(PIB_Rep_Dominicana, type = "l", 
     main = paste("Filtro de Hodrick-Prescott - República Dominicana","\nPeriodo:", start_period, "-", end_period), 
     ylab = "PIB", xlab = "Tiempo")
lines(trend, col = "red", lwd = 2)
legend("topleft", legend = c("PIB Original", "Tendencia (Filtro HP)"), col = c("black", "red"), lty = 1, lwd = 2)

} else {
  message(paste("La columna", pais, "no tiene suficientes datos válidos."))
}

options(scipen = 999)
plot(cycle, type = "l", main = "Componente Ciclico", ylab = "Ciclo", xlab = "Tiempo")

2. usando la representación rápida.

options(scipen = 999)
plot(hp_result,ask = FALSE)

Panamá

1. Usando la versión personalizada y

options(scipen = 999)
library(readxl)
library(mFilter)
library(forecast)

# Cargar los datos
PIB_trimestral_CA <- read_excel("C:/Users/MINEDUCYT/Downloads/datos_PIB_trim_CA.xlsx")

# Especificar el país (en este caso, Panamá)
pais <- colnames(PIB_trimestral_CA)[2]

# Convertir la columna a numérico y manejar valores faltantes
  PIB_pais_data <- as.numeric(PIB_trimestral_CA[[pais]])
  PIB_pais_data <- na.omit(PIB_pais_data)
  
# Verificar si la serie tiene suficientes datos
if (length(PIB_pais_data) > 1) {

# Crear la serie temporal para Panáma
PIB_Panama <- ts(PIB_pais_data, start = c(1990, 1), frequency = 4)

# Determinar el periodo de la serie
  start_period <- floor(time(PIB_Panama)[1])  # Año inicial
  end_period <- floor(time(PIB_Panama)[length(PIB_Panama)])  # Año final

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

# Extraer la tendencia y el componente cíclico
trend <- hp_result$trend
cycle <- hp_result$cycle

# Graficar los resultados
plot(PIB_Panama, type = "l", 
     main = paste("Filtro de Hodrick-Prescott - Panamá","\nPeriodo:", start_period, "-", end_period), 
     ylab = "PIB", xlab = "Tiempo")
lines(trend, col = "red", lwd = 2)
legend("topleft", legend = c("PIB Original", "Tendencia (Filtro HP)"), col = c("black", "red"), lty = 1, lwd = 2)

} else {
  message(paste("La columna", pais, "no tiene suficientes datos válidos."))
}

options(scipen = 999)
plot(cycle, type = "l", main = "Componente Ciclico", ylab = "Ciclo", xlab = "Tiempo")

2. usando la representación rápida.

options(scipen = 999)
plot(hp_result,ask = FALSE)