什么是 Hodrick-Prescott (HP) 过滤器?


Hodrick-Prescott (HP) 过滤器是指数据平滑技术。HP 过滤器通常在分析过程中应用,以消除与商业周期相关的短期波动。消除这些短期波动揭示了长期趋势。这有助于进行与商业周期相关的经济或其他预测。Hodrick-Prescott (HP)是时间序列中最常用的算法。

在公众号「python风控模型」里回复关键字:学习资料

关键要点

  • Hodrick-Prescott 过滤器是指主要用于宏观经济学的数据平滑技术。

  • 它通常在分析过程中用于消除与商业周期相关的短期波动。

  • 在实践中,它被用来平滑和消除世界大型企业联合会的通缉指数的趋势,因此它可以与劳工统计局的 JOLTS 进行基准比较,后者衡量美国的职位空缺

了解 Hodrick-Prescott (HP) 过滤器

Hodrick-Prescott (HP) 过滤器是宏观经济学中常用的工具。它以经济学家 Robert Hodrick 和 Edward Prescott 的名字命名,他们于 1990 年代首次在经济学中普及了这种过滤器。霍德里克是一位专门研究国际金融的经济学家。普雷斯科特获得了诺贝尔纪念奖,与另一位经济学家分享了他们在宏观经济学方面的研究。

此过滤器通过打折短期价格波动的重要性来确定时间序列的长期趋势。在实践中,该过滤器用于平滑和消除美国经济咨商局的通缉指数 (HWI) 的趋势,以便将其与劳工统计局(BLS) 的 JOLTS进行基准测试,JOLTS 是一个经济数据系列,可以更准确地衡量美国的职位空缺

数学表述

图片

特别注意事项

HP 过滤器是宏观经济分析中使用最广泛的工具之一。如果噪声呈正态分布,并且所进行的分析是历史性的,则往往会得到有利的结果。

根据经济学家兼教授 James Hamilton 发表的论文——该论文出现在美国国家经济研究局网站上——不应该使用 HP 过滤器的原因有几个。汉密尔顿首先提出,文件管理器在生成数据的过程中产生没有依据的结果。他还指出,在样本末尾过滤的值与中间的值完全不同。

HP滤波很容易实现,不过它也存在一定缺陷,只在以下严苛条件下才能做出最优估计:[6]

  • 时间序列是二阶整合的,否则HP滤波会得到偏离实际情况的趋势项。

  • 如果发生了单次的永久性冲击(permanent shock)或存在稳定的趋势增长率,HP滤波得到的周期项也会扭曲。

  • 样本中的周期项是白噪音,或者趋势项和周期项中的随机变化机制相同。

标准的双侧HP滤波不应该用来估计基于递归状态空间表达的DSGE模型,这是因为HP滤波使用未来的观测

图片

去构造当前时间点的结果,但递归状态空间要求当前的观测仅基于当前和过去的状态。要解决这个问题,可以使用单侧HP滤波。

python 实现代码

def hp(y, lamb=10):
    def D_matrix(N):
        D = np.zeros((N-1,N))
        D[:,1:] = np.eye(N-1)
        D[:,:-1] -= np.eye(N-1)
        """D1
        [[-1.  1.  0. ...  0.  0.  0.]
         [ 0. -1.  1. ...  0.  0.  0.]
         [ 0.  0. -1. ...  0.  0.  0.]
         ...
         [ 0.  0.  0. ...  1.  0.  0.]
         [ 0.  0.  0. ... -1.  1.  0.]
         [ 0.  0.  0. ...  0. -1.  1.]]
        """
        return D
    N = len(ts)
    D1 = D_matrix(N)

test

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

N = 100
t = np.linspace(1,10,N)
ts = np.sin(t) + np.cos(20*t) + np.random.randn(N)*0.1
plt.figure(figsize=(10,12))
for i,l in enumerate([0.1,1,10,100,1000, 10000]):
    plt.subplot(3,2,i+1)
    g = hp(ts,l)
    plt.plot(ts, label='original')
    plt.plot(g, label='filtered')
    plt.legend()
    plt.title('$\lambda$='+str(l))
plt.show()

在这里插入图片描述

python的d-tale库中可以轻松实现Hodrick-Prescott (HP) filter算法。

图片

欢迎各位同学学习《呆瓜半小时入门python数据分析》。

版权声明:文章来自公众号(python风控模型),未经许可,不得抄袭。遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐