时间序列预测模型比较分析:SARIMAX、RNN、LSTM、Prophet 及 Transformer


时间序列预测模型比较分析:SARIMAX、RNN、LSTM、Prophet 及 Transformer

仅用于站内搜索,没有排版格式,具体信息请跳转上方微信公众号内链接

我们将探讨五种主要方法:
SARIMAX:检测重复出现的模式并考虑各种外部影响。
RNN:分析顺序数据,适用于按时间顺序排列的信息。
LSTM:通过长时间保留数据来增强RNN。
Prophet:由Facebook开发,对数据缺口和重大趋势变化具有强大的抵抗能力。
Transformer:利用自我关注,有效识别复杂模式。
我们在不同类型的数据上对这些方法进行了测试:
电力生产:分析行业能源消耗的长期趋势。电力生产Kaggle数据集[1]
洗发水销售:监测洗发水销量的变化。洗发水销售Kaggle数据集[2]
犯罪数据:洞察公共安全和城市生活。犯罪数据数据集[3]
碰撞报告:加强对车祸和道路安全的了解。碰撞报告数据集[4]
模拟数据:利用自定义生成的时间序列对RNN和LSTM模型进行深入比较。
我们在各种数据集上应用这些模型(每个模型都有特定的配置),以评估它们的准确性、可靠性和速度。
我们是这样做的
应用“有马方法”的原则,我们首先评估静态趋势,并通过自相关函数(ACF)和部分自相关函数(PACF)分析检测模式。这一阶段有助于识别数据中反复出现的模式,从而为我们选择最合适的模型及其参数配置提供信息。
对于每种算法和数据集,我们都会精心选择参数,以提高预测的准确性。
我们使用数据集训练每种算法,并留出一部分数据专门用于验证。
平均绝对百分比误差(MAPE)被用作所有验证数据的标准指标,以便进行直接比较。
这种方法有助于我们了解每种算法的优缺点,指导我们针对具体的时间序列预测挑战选择合适的算法。
我们使用“电力生产”数据集探索时间序列识别。我们的目标是计算该数据的月平均值,从而发现准确预测所必需的关键趋势和模式。
下面的Python脚本将对月度数据汇总进行处理和可视化:
该图(图1)揭示了电力生产的潜在季节性变化,这对预测工作至关重要。
为了评估数据集的静态性并探索自回归和移动平均成分,我们进行了统计测试和分析,如Dickey-Fuller检验、自相关函数(ACF)和偏自相关函数(PACF):
这些分析提供了以下结果:
Dickey-Fuller检验:显示非平稳性,表明需要进行差分。
ACF和PACF:突显了自回归和移动平均成分的必要性,建议使用初始ARIMA(1,1,0)模型。
这些发现使我们能够准确地准备和评估各种数据集,以便进行时间序列预测。
按照这一既定方法,我们对其他数据集的分析结果总结如下:
确定数据集的ARIMA模型参数后,我们就可以使用SARIMAX进行预测了。SARIMAX代表带有外生因素的季节性自回归整合移动平均模型,通过纳入季节周期和外部变量的潜在影响来增强ARIMA。
下面是将SARIMAX应用于“电力生产”数据集的Python示例,其中保留了最近三个月的数据以进行验证:
我们使用平均绝对百分比误差(MAPE)作为评估预测准确性的指标。同样的方法可应用于其他数据集,从而确保我们预测方法的一致性。
递归神经网络(RNN)在时间序列预测中表现突出,因为它能通过隐藏状态动态记忆过去的信息。这与SARIMAX的线性建模方法形成鲜明对比,因为RNN可以以非线性方式对数据进行建模,使其在理解和预测随时间变化的模式方面表现出色。
下面,我们使用RNN对“电力生产”数据集进行预测,特别是针对过去三个月的数据进行验证,以评估模型的预测性能。
以下是简化代码概述:
预处理:调整季节性并规范化数据,为RNN做准备。
序列准备:将数据转换为序列,用于RNN训练,模拟时间依赖关系。
RNN架构:利用RNN层进行时间处理,利用线性层进行预测。
训练:在历时上迭代以最小化损失,并通过反向传播更新模型。
预测:应用所学模式预测测试集的未来值。
反变换:将预测值调整回原始比例,以供评估。
准确度评估:采用MAPE量化模型的预测准确性。
长短期记忆(LSTM)网络旨在通过更好地管理长期依赖性和异常值来改进递归神经网络(RNN)。然而,LSTM的真正功效因数据集而异,这凸显了经验验证的必要性。在即将对“电力生产”等数据集进行的研究中,我们的目标是对不同算法进行数据驱动的评估,纯粹关注经验结果而非理论预期。以下是为LSTM量身定制的Python代码示例:
与RNN相比,LSTM在编码方面的显著差异在于模型的构建。LSTM包括nn.LSTM层,而不是nn.RNN,专门应对学习时间序列数据中长期依赖关系的挑战。这一结构调整是在实际预测任务中发挥LSTM理论优势的关键。
从理论上讲,FacebookProphet旨在通过处理非线性趋势、季节性变化和节假日影响来改进预测。它对不同业务预测要求的适应性,尤其是管理缺失数据和适应趋势突变的能力,受到了关注。据报道,Prophet特别适用于以下业务预测环境:
数据跨度从每月到每年,具有显著的季节性模式。
可预测发生的有影响的节假日。
诱发趋势变化的外部因素,如产品发布。
接近饱和的增长趋势。
以下是将Prophet应用于“电力生产”数据集的Python代码:
影响预测的关键参数:
seasonality_prior_scale(0.2):调整季节性的灵活性。较低的值会收紧季节性,有助于形成一致的模式,同时防止过度拟合。
fourier_order(8):设置季节性模型的复杂性。较高的值可以捕捉到详细的波动,但也有过度拟合的风险。根据数据的季节性变化进行选择。
model.add_seasonality中的period(30.5):定义添加季节性的周期长度,这里近似于一个月,根据数据的季节性频率定制。
注意力转换器最初是为自然语言处理(NLP)而开发的,现在正被用于时间序列预测。从理论上讲,注意力变换器能够权衡不同输入数据点的重要性,从而能够细致入微地理解复杂的时间关系,这与RNN的顺序处理有所不同。
在时间序列中使用变形器还处于尝试阶段,目的是利用其注意力机制来预测不同数据集的趋势和季节性模式。
在此,我提供了将Transformers应用于“电力生产”数据集的代码:
以下是使用Transformers进行时间序列预测的关键步骤:
位置编码:为数据添加唯一的位置信息,帮助模型掌握序列顺序,而无需像RNN那样逐步处理数据。
transformer模型设置:包括处理数据(编码器)和生成预测(解码器)的层,并根据时间序列的具体情况进行调整。
模型训练:包括在训练数据上优化模型,以减少预测误差。
预测:应用训练有素的模型预测未来值,重塑输入数据以符合转换器的预期。
重新添加季节性:将之前去除的季节性模式与预测重新整合,以准确反映现实世界的相关性。
模型评估:使用平均绝对百分比误差(MAPE)评估模型的性能。
在研究中,我们对一系列时间序列数据集采用了五种不同的预测方法。根据每个数据集的独特属性和初步验证的结果,对这些方法进行了微调。对于RNN和LSTM等神经网络方法,我们进行了多次迭代以减少训练过程的随机性,并采用平均MAPE来确定其性能。
所提供的MAPE(平均绝对误差)值表总结了每种预测方法在不同数据集上的有效表现:
RNN和Prophet:这两种方法在准确性和一致性方面表现突出。RNN尤其擅长处理复杂的数据集,而Prophet则在处理季节性较强的数据集时表现出色。
Transformers:尽管Transformers在NLP中取得了成功,但在时间序列预测中的效果有限,这表明在应用于这一领域时需要进一步改进。
SARIMAX和Prophet:这些方法适用于具有确定的ARIMA结构或较小规模的数据集,因为它们不太容易出现与神经网络相关的过拟合风险。
周期/周期处理:准确识别和整合周期/循环信息至关重要。与需要手动输入的RNN和LSTM不同,Prophet和SARIMAX能够更好地自动考虑季节效应。
参数重要性:对于Prophet,季节性先验尺度、周期和傅立叶阶数等参数对其季节性建模能力有很大影响。在RNN和LSTM中,学习率和dropout=0.2对实现有效学习和泛化起着至关重要的作用。
计算速度:Prophet和SARIMAX的计算速度更快,与基于神经网络的方法(如RNN和LSTM)相比具有明显优势,后者需要更多时间对大型数据集进行训练。
LSTMvs.RNN:我们预期LSTM的表现会比RNN好,但我们的测试并没有清楚地表明这一点。这让我们再次思考LSTM是否更擅长处理长期模式和意外数据。即使在调整设置后,RNN也能很好地适应,尤其是当我们改变学习率时,这对LSTM的影响并不大。
这些令人惊讶的结果让我很好奇,因此我创建了一个特殊的数据集,以测试LSTM在它们应该擅长的情况下是否比RNN更好。这个数据集具有长期重复模式和突发偏差(异常值),为LSTM的能力提供了严格的测试。
在这个生成的数据集上运行RNN和LSTM模型后,我得到了以下结果:
这些结果符合理论预期,即LSTM可增强长期依赖性管理和异常值处理能力。该实验强调了根据数据的具体特征选择正确模型的重要性。未来的研究将寻求用真实世界的数据场景来证实这些发现。
在对SARIMAX、RNN、LSTM、Prophet和Transformer等时间序列预测方法的比较分析中,我们发现方法的选择对不同数据集的预测准确性有显著影响。RNN和Prophet分别在处理复杂数据和季节性数据方面表现出色,而LSTM并不总是如预期那样优于RNN。Transformers在其NLP大本营以外的领域举步维艰,这表明它们需要适应时间序列预测。
我们的研究结果强调了选择适当模型和微调参数以适应当前数据集具体特征的重要性。尽管预计LSTM在管理长期依赖性方面具有优势,但我们的研究结果主张采用更细致的方法来选择模型。这一探索不仅挑战了现有的假设,还为进一步研究开辟了道路,从而在不断发展的时间序列分析领域提高预测精度。
参考资料

洗发水销售Kaggle数据集:https ://www.kaggle.com/datasets/redwankarimsony/shampoo-saled-dataset
犯罪数据数据集:https ://catalog.data.gov/dataset/crime-data-from-2020-to-present
碰撞报告数据集:https ://catalog.data.gov/dataset/crash-reporting-drivers-data
长按👇关注-机器学习研习院-设为星标,干货速递


文章作者: ZejunCao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ZejunCao !
  目录