时间序列预测方法

2025年1月7日 | 阅读 8 分钟

时间序列预测是数据评估的重要组成部分,在多个行业中用于根据历史数据预测未来值。无论是预测销售额、股票价格还是天气模式,掌握独特预测技术都对于做出明智决策至关重要。本文探讨了时间序列预测中使用的关键技术,并强调了它们的应用程序、优势和劣势。

理解时间序列数据

时间序列数据是在特定时间间隔收集或记录的一系列数据点。与其他数据类型不同,其中观测值彼此独立,时间序列数据具有固有的时间顺序。这使得它独一无二,并在分析和预测未来值时需要特别关注。理解时间序列数据的趋势和组成部分对于有效的分析和预测至关重要。

什么是时间序列数据?

时间序列数据包含按顺序随时间进行的观测,通常以固定间隔进行,例如每天、每月或每年。这些数据点可以代表各种现象,例如股票价格、温度读数、收入数据,甚至网站流量。时间序列数据的关键特征是其时间顺序,在分析过程中必须保持该顺序,以保留观测值之间的时间关系。

时间序列数据的关键组成部分

时间序列数据可以分解为几个关键组成部分,这些组成部分有助于我们理解潜在的模式。

趋势

定义:趋势是数据随时间变化的长期运动或方向。它代表了数据在较长时期内增长、减少或保持稳定的总体趋势。

示例:连续几年年度收入的典型上升趋势表明公司持续增长。

季节性

定义:季节性是指以固定间隔重复的周期性波动或模式,通常受天气、节假日或经济周期等季节性因素驱动。

示例:零售销售额每年在假日期间达到高峰是季节性的典型例子。

周期性模式

定义:与具有固定周期的季节性不同,周期性模式是发生在较长、不规律时期的波动。这些周期通常受外部经济或社会因素的影响。

示例:商业周期,即经济扩张期后是衰退期,是周期性模式的一个例子。

噪声(不规则成分)

定义:噪声是指数据中的随机变化或波动,这些变化不能归因于趋势、季节性或周期性模式。噪声通常被视为时间序列的“误差”或“残差”部分。

示例:由于突发新闻或事件导致的股票价格突然上涨,构成了经济时间序列数据中的噪声。

时间序列的平稳性

时间序列分析中的一个重要概念是平稳性。如果一个时间序列的统计特性(例如均值、方差和自相关)随时间保持不变,则称该时间序列是平稳的。平稳性对于许多时间序列预测方法(如 ARIMA)至关重要,这些方法假定底层时间序列是平稳的。

平稳性类型

  • 严格平稳性:统计特性随时间而统一。
  • 弱平稳性:均值和方差随时间保持不变,并且观测值之间的协方差仅取决于它们之间的时间间隔。

如果一个时间序列不平稳,则可以通过差分、趋势分离或季节性调整等技术将其转换为平稳序列。

自相关和滞后

  • 自相关衡量同一时间序列中不同时间点的观测值之间的关系。换句话说,它量化了过去的值对未来值的影响程度。
  • 滞后:在自相关计算中进行比较的观测值之间的时间差称为滞后。例如,滞后 1 将每个数据点与其紧邻的前一个数据点进行比较。

时间序列分解

分解是一种用于将时间序列分解为其关键组成部分(趋势、季节性和噪声)的方法。这有助于理解数据的潜在结构并选择合适的预测方法。

分解时间序列通常是分析的第一步,可以更清晰地了解每个组成部分,然后可以单独建模。

时间序列分析中的挑战

处理时间序列数据会带来与其它数据分析不同的独特挑战。

  • 非平稳性:许多现实世界的时间序列是非平稳的,需要在分析前进行转换。
  • 季节性和周期性:准确识别和建模季节性和周期性至关重要,但可能很复杂,尤其是在这些模式随时间变化时。
  • 缺失数据:时间序列经常会遇到缺失数据点,这可能会中断分析和预测。插值或填充等技术用于解决此问题。
  • 自相关和滞后选择:确定用于考虑自相关(如 ARIMA)的模型中的适当滞后可能很困难,需要仔细分析。
  • 异常值:时间序列数据容易出现异常值,如果处理不当,可能会显着影响预测。

时间序列预测模型类型

1. 朴素方法

朴素预测是最简单的方法,假定未来值将与最近的观测值相似。

  • 朴素预测:下一个时期的值被认为与最后一个观测值相同。这种方法快速易于实现,但在数据未显示趋势或季节性时效果最佳。
  • 季节性朴素:此方法假定下一时期的值将与同一季节中的最后一个观测值相同。例如,零售商店可能会预计今年 12 月的销售额与去年 12 月的销售额相似。

2. 移动平均

移动平均可以消除短期波动,并突出长期趋势或周期。

  • 简单移动平均 (SMA):此方法对过去固定数量的观测值进行平均以预测下一个值。它在平滑数据方面很有效,但在趋势变化迅速时可能会滞后。
  • 加权移动平均:与 SMA 不同,此方法为过去观测值分配不同的权重,通常给予近期数据更高的重要性。这使其对数据中的变化更加敏感。

3. 指数平滑

指数平滑方法对过去观测值应用指数递减的权重,使预测对近期变化更加敏感。

  • 简单指数平滑 (SES):此方法适用于没有明显趋势或季节性的时间序列数据。它使用平滑常数来确定最新观测值所占的权重。
  • 霍尔特线性趋势模型:此方法通过包含趋势分量扩展了 SES,使其能够捕捉数据中的线性趋势。

4. 自回归积分移动平均 (ARIMA)

ARIMA 是一种强大而灵活的方法,结合了三个组成部分:自回归 (AR)、积分 (I) 和移动平均 (MA)。

  • ARIMA:ARIMA 模型对于非平稳数据特别有用,这些数据具有可以通过差分使之平稳的趋势或季节性。然后,该模型使用 AR 和 MA 分量来预测未来值。
  • SARIMA:ARIMA 的此扩展包括季节性分量,使其适用于具有季节性模式的时间序列数据。SARIMA 模型可以处理非平稳性和季节性,这使得它们在许多实际应用中非常有效。

5. 自回归模型

自回归模型根据序列的过去值预测未来值。

  • AR(自回归):在 AR 模型中,根据过去值的线性组合来预测未来值。该模型假定过去值对未来值有直接影响。
  • MA(移动平均):MA 模型根据过去的误差来预测未来值。当过去的预测误差显示出可用于改进预测的模式时,此模型很有用。
  • ARMA(自回归移动平均):ARMA 模型结合了 AR 和 MA 分量,最适合处理平稳数据。

6. 状态空间模型

状态空间模型用于更复杂的时间序列预测,尤其是在数据具有多个底层过程时。

  • 卡尔曼滤波器:一种递归方法,用于从一系列噪声测量中估计动态系统的状态。它广泛用于实时预测,例如在导航和跟踪系统中。
  • 结构时间序列模型:此模型将时间序列分解为趋势、季节性和不规则分量等组成部分,从而清晰地解释了每个分量对整个序列的贡献。

7. 机器学习和深度学习模型

由于其捕获大型数据集中复杂模式的能力,机器学习和深度学习方法越来越多地用于时间序列预测。

  • 线性回归:一种简单且可解释的方法,用于模拟时间序列与解释变量之间的关系。
  • 支持向量回归 (SVR):一种使用支持向量机进行回归的类型,在处理高维空间时非常有效。
  • 决策树/随机森林:构建多个决策树并组合其结果的集成方法。它们对于捕获数据中的非线性关系很有用。
  • 神经网络:像长短期记忆 (LSTM) 和门控循环单元 (GRU) 这样的深度学习模型专门设计用于处理序列数据。它们可以捕获时间序列数据中的复杂模式和依赖关系,使其非常有效,但需要大量数据集和大量的计算资源。

8. Prophet

Prophet 是由 Facebook 开发的预测工具,旨在处理季节性、节假日和缺失数据。它用户友好,并且能很好地处理每日或每周数据,因此在商业应用中很受欢迎。Prophet 模型将其视为分段线性函数,这使其能够有效捕获和预测趋势变化。

9. 傅里叶变换

傅里叶变换方法(如快速傅里叶变换 (FFT))将时间序列数据转换到频域。这对于识别在时域中不那么明显地观察到的周期性模式和趋势很有用。

10. 集成方法

集成方法涉及组合不同的预测模型以提高准确性。

组合预测:通过对来自不同模型(包括 ARIMA、指数平滑和机器学习模型)的预测进行平均,集成方法通常可以获得比任何单个模型更好的性能。

选择合适的方法

选择正确的预测方法取决于几个因素。

  • 平稳性:ARIMA 等方法需要平稳数据,而 Holt-Winters 等模型可以直接处理季节性。
  • 数据量:机器学习模型通常在大数据集上表现更好,而朴素方法、移动平均等简单模型可以很好地处理小数据集。
  • 复杂性与可解释性:更简单的模型(例如,朴素方法、移动平均)更容易解释,而更复杂的模型(例如,神经网络、ARIMA)可能提供更高的准确性,但更难解释。

下一个主题数据科学方法