Una guía completa para el filtro de Hodrick-Prescott en el análisis de series de tiempo

Estás leyendo la publicación: Una guía completa para el filtro de Hodrick-Prescott en el análisis de series de tiempo

En el análisis y modelado de series de tiempo, la eliminación de tendencias juega un papel crucial porque nos familiariza con los patrones cíclicos y otros de la serie de tiempo. El proceso de eliminación de tendencia implica la eliminación del efecto de tendencia de la serie temporal para identificar las diferencias en los valores de la tendencia. Usando varios filtros como el filtro de paso de banda, el filtro de Baxter-King (filtro BK) y el filtro de Hodrick-Prescott, podemos realizar la eliminación de tendencias de la serie temporal. En este artículo, discutiremos uno de estos filtros para la eliminación de tendencias de series temporales, el filtro Hodrick-Prescott (HP), en detalle con su implementación práctica. Los puntos principales que se discutirán en este artículo se enumeran a continuación.

Tabla de contenido

  1. Acerca del filtro Hodrick-Prescott
  2. ¿Cómo funciona el filtro de Hodrick-Prescott?
  3. Implementando el filtro Hodrick-Prescott en python
  4. Ventajas del filtro Hodrick-Prescott
  5. Limitaciones del filtro de Hodrick-Prescott

Comencemos la discusión entendiendo el filtro de Hodrick-Prescott.

Acerca del filtro Hodrick-Prescott

El filtro de Hodrick-Prescott o la descomposición de Hodrick-Prescott es una herramienta matemática que se utiliza en el análisis y modelado de series temporales. Este filtro es principalmente útil para eliminar el componente cíclico de los datos de series temporales. La aplicación del filtro de Hodrick-Prescott en series de tiempo nos permite obtener una serie de tiempo uniforme a partir de series de tiempo que tienen componentes de series de tiempo como ciclo de tendencia y ruido en grandes cantidades. Este filtro lleva el nombre de los nombres de los economistas Robert J. Hodrick y Edward C. Prescott.

¿Cómo funciona el filtro de Hodrick-Prescott?

Matemáticamente, la idea básica detrás de este filtro está relacionada con conceptos en la descomposición de series de tiempo. Entendamos esto matemáticamente tomando un ejemplo de serie de tiempo yt.

Dónde,

En yt

t = 1, 2, 3,…..,T

𝛕t = componente de tendencia

ct = componente cíclico

🔥 Recomendado:  Privacidad de datos para especialistas en marketing | Instituto de Marketing Digital

𝜺t = componente de ruido.

Las fluctuaciones a corto plazo del componente de tendencia de la serie temporal se pueden ajustar utilizando un multiplicador. el componente de tendencia de la serie temporal resolverá:

El primer término de la ecuación penaliza el componente cíclico, y el segundo término de la ecuación penaliza la tasa de crecimiento del componente de tendencia que también se puede comparar con el . así que si aumenta eso significa que la pena aumenta. Según el filtro de Hodrick-Prescott el valor de para un dato de 3 meses debería ser 1600. En la práctica el valor de para un año debería ser 100 y 14400 si el dato es mensual.

El filtro de Hodrick-Prescott puede estar dado por,

De la ecuación anterior, podemos decir que el filtro HP no es casual porque el operador retardado L puede verse desde FOC para los problemas de minimización.

Implementando el filtro Hodrick-Prescott en python

En las secciones anteriores, hemos pasado por la introducción al filtro HP. En esta sección, veremos cómo podemos implementarlo en python. Para ello podemos utilizar la librería statsmodel. Usando esta biblioteca podemos utilizar muchas funciones y módulos para la estimación de muchos modelos estadísticos diferentes. Esta biblioteca también proporciona un módulo para el filtro HP en el paquete statsmodels.tsa.filters.

Usando este módulo de statsmodel podemos eliminar la tendencia suave de nuestros datos. donde si

T = tendencia y x = serie, entonces el módulo lo resuelve como:

min (suma((x[t] – T[t])**2 + cordero*((T[t+1] – T[t]) – (T[t] – T[t-1]))**2))

La implementación de este filtro se puede comparar con la regla de regresión de cresta que usa scipy.sparse. Por esto, también podemos escribir la solución del módulo como

T = inv(I + cordero*K’K)x

Dónde,

l = nudos

x = matriz de identidad de nobs

k = (nobs-2) x matriz de nobs

Podemos encontrar más detalles sobre el módulo aquí.

Veamos cómo podemos realizar esto. En la implementación, también utilizaremos los datos de práctica de la biblioteca statsmodel.

Importación de bibliotecas

importar statsmodels.api como sm importar pandas como pd importar matplotlib.pyplot como plt

🔥 Recomendado:  La información de profundidad puede revelar deepfakes en tiempo real

Cargando datos

#importando datos data = sm.datasets.macrodata.load_pandas().data #haciendo index data.set_index(pd.period_range(‘1959Q1’, ‘2009Q3′, freq=’Q’), inplace = True)

Comprobación de datos

columnas.de.datos

Producción:

Estas son las columnas que tenemos en el conjunto de datos. A partir de estas columnas, trabajaremos en la columna realgdp. Se puede encontrar más información sobre los datos en el siguiente resultado:

imprimir (sm.conjuntos de datos.macrodata.NOTA)

Producción:

Veamos cómo va la variable realgdp de los datos con el tiempo.

higo, hacha = datos plt.subplots()[‘realgdp’][“2000-03-31”:].plot(ax=ax,tamaño de fuente=12)

Producción:

En la imagen, podemos ver claramente que el crecimiento de la serie temporal realgdp no es suave. Mediante este gráfico, podemos decir que hay tendencias y componentes cíclicos que se presentan en nuestros datos de series de tiempo.

Ahora, para solucionarlo, podemos utilizar el filtro HP para segregar la serie temporal en sus componentes.

de statsmodels.tsa.filters.hp_filter import hpfilter gdp_cycle,gdp_trend = hpfilter(datos[‘realgdp’]cordero=1600) gdp_segr = datos[[‘realgdp’]]gdp_segr[‘cycle’]= gdp_ciclo gdp_segr[‘trend’] = gdp_trend gdp_segr

Producción:

Aquí, en el resultado, podemos ver que hemos separado el componente de ciclo y tendencia de la serie temporal. Dibujémoslos uno por uno.

gdp_trend.plot()

Producción:

Aquí podemos ver que, como hemos discutido anteriormente, tenemos una tendencia suave que hemos extraído de la serie de tiempo sin procesar.

Veamos cómo va el componente cíclico con el tiempo.

gdp_cycle.plot()

Producción:

Aquí podemos ver el componente cíclico de la serie temporal. Vamos a dibujarlos todos juntos para que podamos tener una visión clara de la serie temporal.

higo, hacha = plt.subplots()

gdp_seg[[‘realgdp’, ‘trent’, ‘cycle’]][“2000-03-31”:].plot(ax=ax,tamaño de fuente=12)

Producción:

En el resultado anterior, podemos ver una visualización comparativa de nuestra serie temporal y su componente. Ya que usamos un filtro HP para extraer la tendencia suave de la serie de tiempo que se puede usar para hacer pronósticos ignorando el componente cíclico. Por lo que nos será mucho mejor visualizar un gráfico comparativo de series temporales y tendencias extraídas que se puede hacer usando los siguientes códigos.

higo, hacha = plt.subplots() gdp_seg[[‘realgdp’, ‘trent’]][“2000-03-31”:].plot(ax=ax,tamaño de fuente=12)

Producción:

En el resultado anterior, podemos comparar fácilmente entre las diferentes líneas y también podemos ver que ahora la tendencia de la serie temporal es más suave que la serie temporal anterior. Esta extracción de tendencia o eliminación de tendencia nos permite pronosticar un valor más preciso.

🔥 Recomendado:  ¿Es TikTok realmente el lugar para comercializar su producto de Amazon?

Ventajas del filtro Hodrick-Prescott

Algunas de las ventajas del filtro HP son las siguientes:

  • Dado que es una herramienta poderosa para suavizar datos, podemos usarla en macroeconomía.
  • Tiene la capacidad de eliminar la fluctuación en series temporales de corto plazo. Por lo tanto, podemos aplicarlo fácilmente para el análisis de series de tiempo a corto plazo.
  • Tiende a tener buenos resultados en situaciones donde el ruido se distribuye normalmente.

Limitaciones del filtro de Hodrick-Prescott

Algunas de las limitaciones del filtro HP son las siguientes:

  • Para que el filtro HP funcione correctamente, debemos tener datos en una tendencia porque la presencia de una tasa de crecimiento dividida hace que el filtro genere cambios sintéticos en la tendencia.
  • Solo podemos realizar análisis de series temporales estáticas con este filtro porque, en una configuración dinámica, este filtro cambia el estado anterior de la serie temporal, lo que genera predicciones engañosas.
  • Este filtro no mira hacia atrás porque su operador de retraso se puede ver desde FOC para problemas de minimización, y eso no lo hace casual.
  • La versión unilateral del filtro HP suaviza la serie temporal, pero no es capaz de extraer valores que no son necesarios para la previsión.

Ultimas palabras

En este artículo, hemos discutido el filtro Hodrick-Prescott o el filtro HP, que se utiliza principalmente para eliminar la tendencia de la serie temporal. Hemos discutido cómo podemos implementarlo prácticamente usando python. Junto con estos, también hemos discutido sus ventajas y limitaciones.

Referencias