如何处理季节性预测
本文是前一篇文章的继续。在那里,我们确定了3种类型的季节性模式。
在这里,我们将:
- 学习如何描述时间序列的季节性。
- 介绍8种可以用来建模季节性的方法。
建模季节性模式
季节性指的是在某个时间段内重复出现的模式。它是一个重要的变异源,需要进行建模。

处理季节性的方法有几种。一些方法在建模之前移除季节性成分。季节调整数据(时间序列减去季节性成分)突出了长期效应,如趋势或商业周期。其他方法则添加捕捉季节性循环性质的额外变量。
在介绍不同的方法之前,让我们创建一个时间序列并描述它的季节性模式。
分析示例
我们将使用与前一篇文章中相同的过程(也可参考参考文献[1]):
period = 12 # 月度时间序列大小 = 120beta1 = np.linspace(-.6, .3, num=size)beta2 = np.linspace(.6, -.3, num=size)sin1 = np.asarray([np.sin(2 * np.pi * i / 12) for i in np.arange(1, size + 1)])cos1 = np.asarray([np.cos(2 * np.pi * i / 12) for i in np.arange(1, size + 1)])xt = np.cumsum(np.random.normal(scale=0.1, size=size))yt = xt + beta1 * sin1 + beta2 * cos1 + np.random.normal(scale=0.1, size=size)yt = pd.Series(yt)
这个时间序列的样子如下:

我们可以从描述季节性模式的强度开始:
# https://github.com/vcerqueira/blog/tree/main/srcfrom src.seasonality import seasonal_strengthseasonal_strength(yt, period=12)# 0.90