经典时间序列分析概述:技术、应用和模型

简介: 时间序列数据按时间顺序收集,具有时间维度的重要性,需专门技术和模型进行分析预测。其应用广泛,涵盖经济预测、风险管理、天气预报、气候建模、流行病学、患者监测、需求预测、客户行为分析及预测性维护等领域。时间序列特征包括趋势、季节性和周期性模式。自相关和偏自相关用于衡量数据点间关系,白噪声表示无自相关的时间序列。平稳性指统计特性随时间保持一致,对建模至关重要。常见模型包括ARMA、ARIMA、SARIMA、ARCH和GARCH,用于捕捉复杂动态并预测未来模式。选择合适模型和确定顺序对准确预测至关重要。掌握这些基础知识不仅增强对复杂模型的理解,还能确保预测方法的稳健性和可靠性。

时间序列数据表示随时间收集的一系列数据点。与其他数据类型不同,时间序列数据具有时间方面,其中数据点的顺序和时间很重要。这使得时间序列分析独一无二,需要专门的技术和模型来理解和预测未来的模式或趋势。

时间序列建模的应用

时间序列建模在各个领域都有广泛的应用,包括:

  • 经济和金融预测:预测未来的股票价格、波动性和市场趋势;预测 GDP、通货膨胀率和失业率
  • 风险管理:通过风险价值 (VaR) 模型评估和管理财务风险
  • 天气预报:预测短期天气状况,例如温度和降水
  • 气候建模:分析长期气候模式并预测气候变化影响
  • 流行病学:追踪和预测疾病的传播
  • 患者监测:分析生命体征并预测心脏病发作等健康事件
  • 需求预测:预测电力和天然气消耗以优化生产和分配
  • 客户行为分析:了解和预测客户购买模式
  • 预测性维护:预测设备故障,以便在故障发生之前执行维护

时间序列特征

时间序列数据的特征是:

  • 趋势:数据的长期增加或减少
  • 季节性:季节性因素(例如一年中的时间或星期几)的影响,发生在固定和已知的时间段
  • 周期性模式:不以固定频率发生的涨跌,通常由经济状况驱动,通常与“商业周期”有关,通常持续至少两年 [1]。

AirPassenger Time Series (1949-1960):此图说明了 1949 年至 1960 年美国航空公司的每月乘客人数。蓝线表示原始数据,显示该时间段内航空旅行的增长趋势。绿色虚线表示趋势分量,而红色虚线表示季节性分量,突出了不同月份乘客人数的重复模式。

除了集中趋势(均值、中位数、众数)和方差的标准描述性统计度量外,时间序列还由其时间依赖性定义。时间依赖性是通过自相关和部分自相关来衡量的,这有助于识别数据点随时间推移的关系,对于理解模式和做出准确预测至关重要。

自相关和部分自相关

自相关和部分自相关是时间序列分析中使用的统计度量,用于了解序列中数据点之间的关系。

  • 自相关衡量数据点与其滞后版本之间的相似性。它量化了数据点与序列中先前数据点之间的相关性。自相关有助于识别数据随时间变化的模式和依赖关系,并且通常使用 correlogram(相关系数与滞后的图)进行可视化。
  • 部分自相关测量数据点与其滞后版本之间的相关性,同时控制中间数据点的影响。它标识数据点与其滞后版本之间的直接关系,不包括由其他数据点介导的间接关系。部分自相关也使用 correlogram 进行可视化。

自相关和偏自相关在时间序列分析中都很有用,原因如下:

  • 识别季节性:自相关可以帮助检测数据中的重复模式或季节性。特定滞后处的显著相关性表明数据在该区间表现出重复模式。
  • 型号选择:自相关和偏自相关指导为时间序列预测选择合适的模型。通过分析相关模型中的模式,您可以确定 ARIMA(自回归集成移动平均)等模型中自回归 (AR) 和移动平均 (MA) 分量的顺序。

白噪声

显示无自相关的时间序列称为白噪声 [1]。换句话说,白噪声序列中的值是独立的,并且是同分布的 (i.i.d.),没有可预测的模式或结构。白噪声序列具有以下属性:

  • 零均值:序列的平均值为零。
  • 常数方差:序列的方差随时间保持不变。
  • 无自相关:任何滞后的自相关为零,表示数据点之间没有可预测的关系。

白噪声对于验证时间序列模型的有效性至关重要。如果模型的残差不是白噪声,则表明数据中留下了模型尚未捕获的模式,这表明需要更复杂或不同的模型。

季节性和周期

季节性是指时间序列数据在一年内以固定的时间间隔(例如每天、每周、每月或每季度)发生的规律模式或波动。季节性通常是由天气、假期或经济周期等外部因素引起的。季节性模式往往会随着时间的推移而持续重复。

如何识别时间序列模型中的季节性

可以通过分析 ACF 图来识别时间序列中的季节性:

  • 周期性峰值:在定期观察 ACF 图中的峰值表明存在季节性滞后。例如,在分析年度季节性的月度数据时,峰值通常出现在滞后 12、24、36 等处。同样,季度数据将在滞后 4、8、12 等处显示峰值。
  • 显著峰值:评估季节性滞后处自相关系数的量值有助于识别较强的季节性模式。与其他峰值相比,季节性滞后处的峰值较高,表明数据具有显著的季节性。
  • 重复模式:检查 ACF 图中与季节性频率一致的重复模式可揭示周期性。季节性趋势通常在季节性滞后处表现出自相关系数的重复模式。
  • 交替的正负相关:有时,在季节性滞后处观察到交替的正负自相关系数表明存在季节性模式。
  • 偏自相关函数 (PACF):使用 PACF 补充分析有助于确定滞后对当前观测的直接影响,不包括通过较短滞后产生的间接影响。季节性滞后时 PACF 的显著峰值进一步证实了数据的季节性。

通过仔细检查这些指标的 ACF/PACF 图,可以推断时间序列数据中存在季节性趋势。此外,光谱分析和分解方法(例如 STL 分解)也可用于识别和分离数据中的季节性分量。这种理解对于选择合适的预测模型和制定有效管理季节性的策略至关重要。

AirPassenger Time Series 的 ACF 和 PACF:上图显示了航空公司乘客数据的 ACF 和 PACF 相关图。ACF 在前几个滞后中显示高值,这些值会逐渐降低,但对于许多滞后则保持显著值。这表明数据中存在很强的自相关,表明过去的值对未来的值有重大影响。在 PACF 图中,显著的峰值出现在滞后 12、24 等处,表明数据中存在年度季节性效应。

另一方面,周期是指时间序列中不具有固定频率或周期的波动。它们通常是长期模式,通常跨越数年,并且不像季节性模式那样精确定义。周期可能会受到经济因素、商业周期或数据中其他结构变化的影响。

总之,虽然季节性和周期都涉及时间序列数据的变化模式,但季节性在一年内以固定的时间间隔重复。相比之下,周期代表可能没有固定周期性的长期波动。

平稳性

时间序列数据中的平稳性意味着统计特征(如均值、方差和协方差)随时间保持一致。这种稳定性对于各种时间序列建模技术至关重要,因为它简化了底层动力学,有助于准确分析、建模和预测。平稳性有两种主要类型:

平稳性是时间序列分析中的一个关键概念,因为许多统计模型都假设数据的属性不会随时间而变化。非平稳数据会导致不可靠的预测和虚假关系,因此在建模之前实现平稳性至关重要。

为什么平稳性很重要?

非平稳时间序列可能会出现问题,原因如下:

  • 建模困难: 非平稳时间序列违反了许多统计模型的假设,这使得准确建模和预测未来值具有挑战性。ARIMA(自回归积分移动平均线)等模型假设平稳性,因此非平稳数据可能导致不可靠的预测。
  • 虚假回归:非平稳时间序列可能导致虚假回归,其中两个不相关的变量似乎密切相关。这可能会导致误导性的结论和对变量之间关系的不准确解释。
  • 低效的参数估计:非平稳的时间序列会导致参数估计效率低下。模型参数的估计值可能具有较大的标准误差,从而降低了估计系数的精度和可靠性。

Dickey-Fuller 检验和增强型 Dickey-Fuller 检验

Dickey-Fuller 检验和增强 Dickey-Fuller 检验是用于确定时间序列数据集是否平稳的统计检验。它们测试是否存在单位根,这表示非平稳性。单位根表明对时间序列的冲击具有永久性影响,这意味着序列不会恢复到长期均值。

  • 局限性:这些测试可能对滞后长度的选择很敏感,并且在小样品中可能具有低功效。仔细解释结果以及其他诊断检查至关重要。
ADF Test on AirPassenger Time 序列 测试结果

1

from statsmodels.tsa.stattools import adfuller

2

3

output = adfuller(data['Passengers'])

4

5

result = {

6

        'ADF Statistic': round(output[0],3),

7

        'p-value': round(output[1],3),

8

        'Critical Values (1%)': round(output[4]['1%'],3),

9

        'Critical Values (5%)': round(output[4]['5%'],3),

10

        'Critical Values (10%)': round(output[4]['10%'],3),}

11

12

print(pd.Series(result))


ADF 统计量 0.815
p 值 0.992
临界值 (1%) -3.482
临界值 (5%) -2.884
临界值 (10%) -2.579

鉴于高 p 值 (0.992) 和 ADF 统计量 (0.815) 大于临界值的事实,我们无法否定原假设。

因此,有强有力的证据表明时间序列是非平稳的并且具有单位根。


如果时间序列不是平稳的,如何使时间序列静止

  • 差分:例如,一阶差分涉及从当前观测值中减去前一个观测值。如果时间序列具有季节性,则可以应用季节性差分。
  • 变换: 对数、平方根或 Box-Cox 等技术可以稳定方差。
  • Decomposition:将时间序列分解为趋势、季节性和残差分量。
  • 去除趋势:例如,减去滚动均值或拟合并删除线性趋势。

识别和解决时间序列分析中的非平稳性以确保可靠和准确的建模和预测非常重要。

对单变量时间序列建模

would 表示定理

Will 分解定理指出,任何协方差平稳过程都可以分解为两个互不相关的分量。第一个分量是白噪声过程的过去值的线性组合,而第二个分量由一个过程组成,其未来值可以通过过去观测的线性函数精确预测。

Would 定理是时间序列分析的基础,为理解和建模稳态时间序列提供了一个框架。

滞后运算符

滞后运算符 (L) 有助于简洁地表示差分运算。它将时间序列向后移动一次增量。

指数平滑

指数平滑是一种时间序列预测技术,它将加权平均值应用于过去的观测值,为最近的观测值提供更多权重,同时以指数方式降低较早观测值的权重。此方法可用于进行短期预测和消除数据中的不规则性。

简单指数平滑

简单指数平滑是一种技术,其中下一个周期的预测计算为当前周期的观察值和上一个预测的加权平均值。此技术适用于没有趋势或季节性的时间序列数据。

ARMA (AutoRegressive Moving Average) 模型

ARMA 模型是一种流行的时间序列模型,它结合了自回归 (AR) 和移动平均 (MA) 分量。它用于根据时间序列的过去值预测时间序列的未来值。

ARMA 模型的自回归 (AR) 分量表示当前观测值与一定数量的滞后观测值之间的线性关系。它假定时间序列的当前值是其过去值的线性组合。自回归分量的顺序(用 p 表示)决定了模型中包含的滞后观测值的数量。

ARMA 模型的移动平均 (MA) 分量表示当前观测值与一定数量的滞后预测误差之间的线性关系。它假定时间序列的当前值是先前观测值的预测误差的线性组合。移动平均分量的顺序(用 q 表示)确定模型中包含的滞后预测误差的数量。

ARMA 模型可以用以下方程表示:

ARMA 模型可以使用各种方法进行估计,例如最大似然估计或最小二乘估计。

ARIMA 模型

ARIMA 包括一个积分项,在 ARIMA 中表示为 “I”,它表示数据中的非平稳性。ARIMA 模型通过对序列进行差分来实现平稳性,从而处理非平稳数据。

在 ARIMA 模型中,积分阶数(表示为 “d”)指定实现平稳性所需的差分次数。这是一个需要从数据中确定或估计的参数。ARMA 模型不涉及此积分阶次参数,因为它们假定数据是平稳的。

SARIMA 模型

SARIMA 代表季节性自回归综合移动平均线。它是 ARIMA 模型的扩展,将季节性纳入建模过程。SARIMA 模型在处理显示季节性模式的时间序列数据时特别有用。

SARIMAX

SARIMAX 模型由参数 (p, d, q) 和 (P, D, Q, s) 定义:

  • (p, d, q):这些是非季节性参数。
  • p: 非季节性自回归 (AR) 部分的顺序
  • d:使序列保持平稳所需的非季节性差值个数
  • q:非季节性移动平均线 (MA) 部分的顺序
  • (P, D, Q, s):这些是季节性参数。
  • P:季节性自回归 (AR) 部分的顺序。
  • D:使序列保持平稳所需的季节性差异数。
  • Q:季节性移动平均线 (MA) 部分的顺序。
  • s:季节性周期的长度(例如,对于具有年度季节性的月度数据,s=12)。
  • 外生变量 (X):这些是可以影响时间序列的外部变量,但不属于序列本身。例如,经济指标或天气数据可能作为外生变量包含在内。

用于航空乘客时间序列的 SARIMAX 模型

为了确定季节性自回归综合移动平均线 (SARIMA) 模型的最佳阶数,使用了 [4] 库中的函数。它自动识别 SARIMAX 模型的最佳参数。auto_arimapmdarima

1

Sarimax_model = auto_arima(train_data,

2

                          start_p=0, start_q=0,

3

                          max_p=6, max_q=6,

4

                          max_d=12,

5

                          seasonal=True,

6

                          m=12,  # Seasonal period (e.g., 12 for monthly data with yearly seasonality)

7

                          start_P=0, start_Q=0,

8

                          max_P=25, max_Q=25,

9

                          d=None, D=None,

10

                          max_D=25,

11

                          trace=True,

12

                          error_action='ignore',  

13

                          suppress_warnings=True,

14

                          stepwise=True,

15

                          random = True,

16

                          n_fits = 10,

17

                          information_criterion = 'aic')

18

Sarimax_model.summary()


根据网格搜索,模型的最佳顺序为:SARIMAX(1, 1, 0)x(0, 1, 0, 12)。auto_arima

使用 SARIMAX(1, 1, 0)x(0, 1, 0, 12) 进行预测和预测

波动性建模

时间序列的波动性是指序列随时间的变化或离散程度。它是衡量序列偏离其平均值或预期值的程度的指标。波动性在金融市场中尤其相关,但也适用于其他类型的时间序列数据,在这些数据中,了解或预测可变性很重要。它通常以金融证券价格或价值的年化标准差变化来衡量;例如,对于资产价格波动,计算如下 [2]:

模拟波动率的简单方法

ARCH(自回归条件异方差性)模型

ARCH 模型是计量经济学和金融计量经济学中使用的一类模型,用于分析时间序列数据,尤其是在波动率聚类的背景下。这些模型旨在捕获金融时间序列数据中的时变波动率或异方差性,其中序列的波动性可能会随时间而变化。

在统计学中,如果随机变量序列的所有随机变量都具有相同的有限方差,则该序列是同方差的;这也称为方差同质性。互补概念称为异方差性,也称为方差异质性 [3]。

ARCH 模型背后的基本思想是,时间序列的方差可以建模为其过去值的函数,以及可能的一些外生变量。换句话说,任何给定时间的方差都是以序列的过去观测为条件的。

  • ARCH (1) 模型推导:

  • ARCH (p) 模型:

GARCH(广义自回归条件异方差性)模型

GARCH 模型是 ARCH 模型的扩展。它将时间序列建模为先前值和波动性的函数。

标准普尔 500 指数波动率的 GARCH:

使用 GARCH(2,2) 模型的标准普尔 500 ETF 的每日数据和预测。顶部图说明了 SPY 从 1992 年 12 月到 2024 年 8 月的实际收盘价。底部图将每日回报与 GARCH(2,2) 模型(根据过去 10 年数据训练)预测的回报进行比较。主 y 轴显示实际回报和模型的预测平均回报,而辅助 y 轴显示预测的标准差,反映预测的波动率。

评论:ARMA 和 GARCH

  • AR/ARMA 模型:最适合平稳的时间序列数据,其中均值和方差等统计属性随时间变化是恒定的;ARMA 模型结合了自回归 (AR) 和移动平均 (MA) 分量,以捕获受过去值和过去预测误差影响的动态,这对于短期预测非常有用。
  • AR 模型:当数据中的主要关系介于当前值与其过去值之间时使用;适用于残差显示没有显著自相关模式的时间序列,这表明仅过去的值就足以解释当前的观测值。
  • ARMA 模型:当过去的值和过去的预测误差都显著影响当前值时,采用该模型;这种组合为捕获时间序列数据中的复杂动态提供了更全面的模型。
  • ARCH 模型:最适合具有波动性聚类但缺乏长期持久性的时间序列数据;ARCH 模型通过根据过去的误差对随时间变化的方差进行建模,有效地捕获高波动性和低波动性的爆发。
  • GARCH 模型:通过合并过去的方差来扩展 ARCH 模型,使它们能够处理更持久的波动性;GARCH 模型更擅长捕获金融时间序列数据中的长期依赖关系,使其适用于持续高波动性或低波动性的序列。

时间序列模型的比较:AR(1)、ARMA(1,1)、ARCH(1) 和 GARCH(1,1)。

型号选择

在分析时间序列数据时,选择合适的模型(例如 AR 与 ARMA)并确定模型的顺序对于做出准确预测至关重要。可以使用多种方法进行模型选择:

结论

时间序列分析是理解和预测各个领域(从金融和经济学到医疗保健和气候科学)的时间数据模式的关键工具。扎实掌握经典时间序列模型(如 ARMA、ARIMA、SARIMA、ARCH 和 GARCH)以及平稳性、自相关和季节性等基本概念,对于开发和微调更高级的方法至关重要。经典模型提供了对时间序列行为的基本见解,指导了更复杂技术的应用。掌握这些基础知识不仅可以增强对复杂模型的理解,还可以确保预测方法稳健可靠。

通过利用通过经典模型建立的原则和性能基准,从业者可以优化高级方法,例如机器学习算法、深度学习和混合模型,从而获得更准确的预测和更明智的决策。

引用

目录
相关文章
|
2月前
|
机器学习/深度学习 人工智能 算法
机器学习概述
机器学习概述
31 0
|
2月前
|
机器学习/深度学习 人工智能 算法
强化学习概述与基础
强化学习概述与基础
54 0
|
5月前
|
机器学习/深度学习 数据可视化 TensorFlow
探索机器学习模型的可视化:从理论到实践
【7月更文挑战第31天】本文将深入探讨如何通过可视化技术来理解和解释复杂的机器学习模型。我们将介绍多种可视化工具和方法,并通过实际代码示例展示如何应用这些技术来揭示模型的内部工作原理。文章旨在为读者提供一种直观的方式来理解、调试和优化他们的机器学习模型。
58 0
|
机器学习/深度学习 人工智能 算法
机器学习概述(三)
机器学习概述(三)
|
7月前
|
机器学习/深度学习 监控 算法
|
机器学习/深度学习 人工智能 自然语言处理
机器学习概述(一)
机器学习概述(一)
112 2
|
机器学习/深度学习 人工智能 算法
机器学习概述(二)
机器学习概述(二)
|
机器学习/深度学习 算法 PyTorch
机器学习-逻辑回归:从技术原理到案例实战
机器学习-逻辑回归:从技术原理到案例实战
367 0
|
机器学习/深度学习 算法 Python
经典机器学习系列(十三)【结构化学习】(二)
经典机器学习系列(十三)【结构化学习】(二)
104 0
|
机器学习/深度学习 算法 计算机视觉
经典机器学习系列(十三)【结构化学习】(一)
经典机器学习系列(十三)【结构化学习】(一)
150 0