
2.5 实现简单的季节性预测
在本章中,我们考虑了前两个基线的趋势分量,但我们没有研究数据集中的另一个重要分量,即图2.10所示的季节性分量。我们的数据中有明显的周期性模式,我们可以用这些信息来构建最后一个基线:简单的季节性预测。

图2.10 时间序列的季节性分量。我们可以在这里看到周期性波动,这表明季节性的存在
简单的季节性预测采用上一个观测周期,并将其重复到未来。在我们的例子中,一个完整的周期发生在四个季度中,因此我们将从1979年第一季度的每股收益中提取并预测1980年第一季度的值,然后我们将从1979年第二季度的每股收益中提取并预测1980年第二季度的值。这个过程将在第三和第四季度重复。
在Python中,我们可以通过简单地获取训练集的最后四个值(对应于1979年的四个季度),并将其分配给1980年的相应季度来实现此基线。以下代码附加了pred_last_season列,以保存我们对简单的季节性预测方法的预测:

然后,我们按照与前几节相同的方式计算MAPE:

这给出了11.56%的MAPE,这是本章所有基线中最小的MAPE。图2.11说明了我们的预测与测试集中观测数据的比较。作为练习,我强烈建议你尝试自己重新创建它。

图2.11 测试集的原始季节性预测结果。这一预测与测试集中观测到的数据更相似,并导致最小的MAPE。显然,该数据集的季节性对未来值有影响,在预测时必须考虑这一点
正如你所看到的,在本章我们建立的所有基线中,简单的季节性预测结果MAPE是最小的。这意味着季节性对未来数值有重大影响,因为将上个季节重复到未来会产生相当准确的预测。客观地说,这是有意义的,因为在图2.11中我们可以清楚地观测到每年重复的循环模式。当我们为这个问题开发一个更复杂的预测模型时,必须考虑季节性效应。我将在第8章中详细解释如何使用它们。