提升时间序列预测准确率:构建定制基准模型的新方法
在系列文章的第二部分中,作者继续探讨了如何简化时间序列预测模型,重点放在定制基础模型上。上一篇文章介绍了一个基于“Daily Minimum Temperatures in Melbourne”数据集的季节性朴素基线模型,该模型只考虑了季节性而未顾及趋势成分,其平均绝对百分比误差(MAPE)为28.23%。在这个新章节里,作者深入讲解了如何通过提取时间序列中的趋势和季节性成分来构建更精确的基础模型,进一步减少了预测误差。 首先,作者回顾了几种常见的基础预测模型及其适用场景,指出季节性朴素模型虽然能够捕捉到较大的季节变动,但对于数据中存在的细小变化以及长期趋势却无能为力。为了应对这类问题,作者提出了一种新的方法,即将时间序列分解成三个独立的部分:趋势、季节性和残差(随机波动),从而构建一个更加精确的基础模型。 具体来说,对于“每日最低温度”数据集,作者采用了两种不同的分解策略。第一种是通过计算3天中心移动平均值来确定趋势线,然后从原始观测值中减去趋势值,得到剔除趋势的数据,再根据这些数据来估计季节性因子。第二种则是根据具体日期(月日组合)来平均所有年份的温度,构造一个基于日历日期的季节性模式,这种方式可以更细致地描绘出全年各日的温度变动规律。此外,作者还尝试了将上述两种模型结合的方法,将70%的权重分配给日历日平均值,30%的权重分配给前一日的实际观测温度,形成了一个新的混合基线模型。通过对比不同模型的表现,作者发现这种混合模型达到了最佳的MAPE值——18.73%。 文中还提到了一个关键点——当处理具有较短历史周期的小样本数据时,开头和末尾的数据会因为缺乏足够的相邻数据点而产生缺失的趋势和残差值,这是正常现象,不会对整体预测造成显著影响。在实际操作中,通过将上述理论应用到Python代码中,作者不仅详细展示了每个步骤的具体实现,还解释了为何要选择这样的数据划分方法(如训练集包含最初9年的数据,测试集则为最后一年的数据),并给出了各个模型的性能评估指标。 通过这一系列的实验,作者得出结论:虽然高级的时间序列预测算法如ARIMA和SARIMA在复杂的数据场景下表现更为优秀,但在一些特定场景下,通过简单的数据分解和定制化处理也可以有效地提高预测精度。因此,在选择算法之前,应该先行分析数据的特点,构建出能够反映数据本质特征的基础模型,这对于衡量更为复杂的算法是否有引入的必要提供了重要的参考价值。 业内人士表示,这篇文章对于入门级的时间序列分析者来说非常有价值,因为它不仅清晰地介绍了几种基础模型及其背后的数学逻辑,而且还提供了一系列易于实践的操作步骤。这使得读者即使不具备深厚的专业背景也能快速掌握基础知识,并能够在自己的项目中加以应用。与此同时,通过对实际案例的剖析,也揭示了数据分析过程中的一些普遍问题,例如如何对待缺失值、短周期数据的特点等。这些经验对于后续深入学习和研究都有着不可忽视的意义。 本文使用的“每日最低温度”数据集来源于Kaggle,共享许可协议为CDLA-Permissive 1.0,允许商业用途,前提是给予适当引用。该数据集包含了墨尔本10年内每日的最低气温记录,被广泛应用于天气预报及气候研究等领域。
