进行时间序列的数据分析时,季节因素调整与hp滤波是进行数据处理与准备工作的常见必要环节。本文简要梳理季节调整与hp滤波的应用场景,以及在Python中的实现方法。
1. 季节调整方法
季节调整的目的是剔除季节因素的影响,使得数据平滑。进行季节调整的目的其一是使得不同季节的数据具有可比性,其二是使得一般的时间序列模型能够适用于数据,例如我们观察到近期燃油价格上涨,想通过ARMA模型验证其趋势性,但燃油上涨的时间窗口在冬季,所以要通过季节调整方法剔除掉季节作用,余下的价格上涨才有验证的意义。
常用的季节调整方法包括:(1)求同比;(2)census X12/X13季节调整;(3)平滑分离方法。
1.1 求同比
Python中求同比非常简单,例如对于月度时间序列数据M2:
dM2 = M2.pct_change(12)
即可求出同比。
如果是季度数据,将函数参数换为4即可。而对于中国的某些数据,例如社会零售、固定资产投资等,其1月或2月的数据是没有的,按照周期长度相应调整参数即可。
求同比方法最为广泛使用,但不适用于带有零值或负值的数据。
1.2 census X12/X13季节调整
这里的“census”是指美国统计局(United States Census Bureau),所以美国的各种统计数据都是通过这套方法进行季节调整的。这套方法在学术界得到了广泛的使用。
方法的具体计算步骤,可参考官方网站(X-13ARIMA-SEATS Seasonal Adjustment Program),这里只简单给出一个使用案例:
from fredapi im