时间序列预测的自回归 (AR) 模型

2025年7月10日 | 阅读9分钟

自回归(AR)模型利用时间序列中的自回归(AR)分析,通过过去的观测值来预测未来的值。其主要原理是,时间序列的当前值可以作为过去序列值线性组合加上随机误差项(用于考虑噪声)来预测。

自回归(AR)模型概述

自回归模型是一种线性回归模型,它用于根据相同类型的过去(滞后)输出来预测未来的结果。它特别适用于具有平稳特性的时间序列数据。

可以通过 Scikit-learn 提供的线性回归手动应用 AR 模型,这需要进行滞后特征准备。但更简单的方法是依赖 statsmodels 库提供的 AutoReg 类,该类同时处理滞后选择和模型拟合。

AR 模型预测与训练

我们将假设一个自回归(AR)模型,通过在 statsmodels 库中实现 AutoReg 类来构建。它首先导入时间序列数据,并将其分为测试集和训练集。然后,使用训练数据以给定的滞后值(例如 29)来训练 AR 模型。模型拟合完成后,我们就可以用它来预测接下来的 7 天。

最后,使用诸如均方根误差(RMSE)之类的指标来衡量模型的性能,并将结果绘制出来,以比较预测值与实际数据。

示例

输出

 
predicted=11.871275, expected=12.900000
predicted=13.659297, expected=14.600000

Test RMSE: 1.204

自回归(AR)模型的工作原理

在自回归(AR)模型中,通过关注过去观测值在当前值演变中的作用来评估时间序列数据。开发和理解 AR 模型的一个重要工具是自相关函数(ACF),它量化了时间序列与其先前(过去)值之间的相关性。

1. 滞后和时间依赖性

在时间序列分析中,滞后用于表示在比较当前值时,我们考虑了多少个时间步。例如,滞后 1 将一个数据点与它前面的数据点进行比较;滞后 2 将一个数据点与它前面两个值进行比较,依此类推。在指定的滞后下,自相关系数衡量当前时间的值与其先前值之间的相似性。

如果系数很大,则表示时间关系很强。然而,如果值很小或接近于零,则意味着对过去值的依赖性很小或没有依赖性。

2. 使用 ACF 绘制自相关图

为了更详细地确定自相关模式,我们将使用 ACF 图。该图是各种滞后自相关系数的可视化表示。图的 x 轴显示滞后的不同值,y 轴显示自相关的值。超出阴影置信区间峰值表示显著,因此表明在那些滞后处存在有意义的相关性。

ACF 可用于揭示数据中隐藏的时间模式,并为 AR 模型应包含哪些滞后值提供线索。

3. ACF 在选择 AR 模型中的作用

ACF 在选择 AR 模型中应包含的足够滞后数方面起着至关重要的作用。尽管 ACF 提供了相关性的总体概览,但通常将其与偏自相关函数(PACF)结合使用,以进一步确定最佳滞后阶数。此外,ACF 还用于验证时间序列是否是平稳的(即,其统计量(均值和方差)不随时间变化)。

在平稳序列的情况下,自相关通常会随着滞后的增加而快速下降。但当自相关不消失或缓慢消失时,我们可能有一个非平稳的时间序列,并且在拟合 AR 模型之前可能需要对数据进行转换(例如,通过差分)。

自回归模型的类型

自回归(AR)模型可根据其中使用的先前时间步(滞后)的程度分为几类。有四种最受欢迎的类型:

1. AR(1) 模型

AR 模型最基本的类型是 AR(1) 自回归模型,或称一阶 AR 模型。该模型包括将时间序列的当前值视为即时过去时间序列、常数项和随机误差的函数。

当数据在滞后一阶时表现出极高的相关性时,它效果很好,其中序列的每个元素主要受(影响)序列中紧接其前面的那个元素的影响。

2. AR(p) 模型

AR p 模型更为通用,因为当前值由过去 p(滞后)决定。模型阶数 p 的选择对于正确预测非常重要。选择正确的 p 值通常包括分析自相关函数(ACF)和偏自相关函数(PACF)图,以确定影响时间序列当前值的显著滞后。

为预测温度实现 AR 模型

1. 导入必要的库

首先,我们导入所有必需的库,这些库用于数据操作、可视化和建模。这包括 NumPy、Pandas 和 Matplotlib 用于一些操作,Statsmodels 用于构建 AR 模型,以及 Scikit-learn 用于一些额外的预处理和检查工具。

2. 数据加载和预处理

作为预处理步骤,我们首先将 CSV 文件中的温度数据集加载到 Pandas DataFrame 中。将名为 Date 的列更改为 DateTime 格式,以便进行基于时间的操作。如果我们有任何不完整的温度值,我们将通过插值来处理它们,以便获得完整的数据,然后进行建模。

3. 执行平稳性检验

我们进行增广迪基-富勒检验,以了解温度时间序列是否可以通过 AR 模型进行建模。这种统计检验用于确定序列没有趋势,也就是说,它的均值和方差不随时间变化;这是 AR 模型的一个关键要求。

进行的检验使我们能够确定是否需要对序列进行差分以达到平稳性;我们使用 ADF 统计量和 p 值。

4. 移除温度差分列

由于 ADF 检验的 p 值大于 0.05,因此温度序列是非平稳的。作为解决方案,我们使用一阶差分,即将每个值减去其前面的值。这有助于去除趋势并稳定均值,使序列能够满足 AR 建模的平稳性属性。

5. 绘制 ACF 和 PACF 图

我们绘制差分温度序列的自相关函数(ACF)和偏自相关函数(PACF)。这些图可以通过显示当前值在各种滞后下的相关程度,帮助我们确定和识别 AR 模型最合适的滞后阶数(p)。

6. 数据集划分

为了检查模型的性能,将差分数据集划分为 80% 用于训练,20% 用于测试。

7. 模型拟合

根据 PACF 图所示的滞后阶数 p(例如,p=13),使用训练数据集来训练自回归(AR)模型。

8. 进行预测

在此步骤中,我们应用训练好的 AR 模型来计算训练集的样本内预测和测试集的样本外预测。这是通过使用 AutoRegResults 对象的 predict 方法实现的,引用开始和结束时期以确定预测范围。通过将 `dynamic` 设置为 `False`,模型将基于历史的实际值进行每次预测,而不是基于模型的先前预测。

9. 模型测试

在评估预测的准确性时,我们可以计算差分数据的均方根误差(RMSE)和平均绝对误差(MAE)。这些度量有助于估算模型的预测准确性。

10. 将预测值转换回原始尺度

鉴于 AR 模型是在差分数据(即每日温度变化 ΔT)上训练的,因此其预测值也以 ΔT 的形式表示。为了将这些预测值与温度读数 T 进行比较,我们需要反转差分并将其转换回原始尺度。在此步骤中,将预测值转换回原始尺度(例如,摄氏度),以便与实际温度数据进行比较。

11. 结果可视化

最后,在训练/测试拆分点的必要位置,我们将完整的观测温度序列与 AR 模型预测绘制在一起。

自回归模型的优点和缺点

好处

易于学习和使用

AR 模型结构简单,应用相对容易。由于它们依赖于同一变量的历史值,因此易于理解,新手也能够使用。

可解释性强

模型中的系数也为过去值对未来值的影响提供了清晰的线索,这使得结果的解释和描述变得容易。

适用于平稳数据

AR 模型适用于时间序列中的平稳数据,即具有不随时间变化的统计量(如均值和方差)。这使得它们可以在数据集存在稳定模式时使用。

快速高效

AR 模型在计算上高效且速度快,由于其简单的结构,运行起来非常方便。这使其适合较小的数据集或需要快速预测的情况。

短期模式检测

它们能有效地捕捉数据的短期依赖性和近期变化,因此在预测近期未来时非常有用。

缺点

需要平稳性

AR 模型假设数据是平稳的,但实际上,数据通常存在趋势或季节性。数据需要通过预处理(如差分)来使其适合。

仅限于近期历史

这些模型基于有限的近期观测数据,因此无法看到给定数据中的任何长期趋势/关系。

滞后选择

确定滞后阶数很重要。滞后不足可能遗漏有价值的模式,而过多的滞后可能导致过拟合问题并降低预测精度。

对噪声敏感

AR 模型容易受到数据中的随机扰动或异常值的影响,这可能导致预测失真,除非对噪声进行充分管理。

结构不适合长期预测

虽然能够进行短期预测,但大多数 AR 模型在长期预测方面往往会失败,因为它们记住的先前数据有限。

数据质量很重要

数据集中的异常值或缺失值会严重影响模型的性能,因为 AR 模型对输入数据中的不规则性很敏感。