Filtro de Hodrick Prescott[HP]
Introducción
El filtro de Hodrick-Prescott (HP) es una técnica ampliamente utilizada en macroeconomía para descomponer una serie temporal en una tendencia a largo plazo y un componente cíclico.
Este método fue desarrollado por Robert Hodrick y Edward Prescott en 1980 y se ha convertido en una herramienta esencial en el análisis económico y financiero.
Formulación del Filtro HP
La fórmula matemática básica del filtro HP minimiza la suma de dos componentes:
La desviación entre la serie original (\(y_t\)) y la tendencia suavizada (\(\tau_t\)).
La variación de la tendencia es suavizada para asegurar que no sea demasiado flexible.
Matemáticamente: \[\min \sum_{t=1}^{T} (y_t - \tau_t)^2 + \lambda \sum_{t=2}^{T-1} [(\tau_{t+1} - \tau_t) - (\tau_t - \tau_{t-1})]^2\]
\(\lambda\) es un parámetro de suavización que determina el equilibrio entre la fidelidad a los datos y la suavidad de la tendencia.
Valores comunes para \(\lambda\) son: 14400 para datos mensuales, 1600 para datos trimestrales, 100 para datos anuales.
Ventajas y Limitaciones
Ventajas: Sencillo de implementar, útil para análisis visual y de tendencias.
Limitaciones: Sensible a la elección de \(\lambda\), puede introducir artefactos en los extremos de la serie temporal, no adecuado para datos no estacionarios o con cambios estructurales.
Aplicación en R
Implementación Personalizada
library(readxl)
library(mFilter)
library(forecast)
# Carga de los datos
PIB_trimestral <- read_excel("C:/Users/Ademir/Desktop/PIB_trimestral.xlsx")
PIB_trim<-ts(PIB_trimestral$PIB_trim,start = c(2005,1),frequency = 4)
# Aplica el filtro de Hodrick-Prescott
# Ajusta el parámetro lambda según la frecuencia de los datos, 1600 para datos trimestrales.
hp_result <- hpfilter(PIB_trim, freq = 1600)
# Extrae la tendencia y el componente cíclico
trend <- hp_result$trend
cycle <- hp_result$cycle
# Visualiza los resultados
plot(PIB_trim, type = "l", main = "Filtro de Hodrick-Prescott", 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)