关于人工智能:时间序列预测的20个基本概念总结

3次阅读

共计 4314 个字符,预计需要花费 11 分钟才能阅读完成。

1、工夫序列

工夫序列是一组按工夫顺序排列的数据点

比方:

  • 每小时的气压
  • 每年的医院急诊
  • 按分钟计算的股票价格

2、工夫序列的组成部分

工夫序列数据有三个次要组成部分。

  • 趋势
  • 季节性
  • 残差或白噪声

3、趋势

在工夫序列中记录的长期迟缓变动 / 方向。

4、季节性

季节性是在固定工夫内产生的工夫序列中的循环模式。

上面的工夫序列显示了季节性,在每个周期中,都处于底部和峰值,模式类似。

5、残差 / 白噪声

这是一个工夫序列的模式,齐全是随机的,不能用趋势或节令成分来解释。

6、工夫序列合成

工夫序列合成是将工夫序列合成为其组成部分的过程,即趋势,季节性和残差。

在上图显示了工夫序列数据,数据上面的图中被合成为其组成部分。

“残差”显示的是工夫序列中无奈用趋势或季节性解释的模式。这些示意数据中的随机性。

咱们能够应用如下所示的 statmodels 库来合成工夫序列。

 import pandas as pd 
 import matplotlib.pyplot as plt
 from statsmodels.tsa.seasonal import STL
 
 df = pd.read_csv("time-series-data.csv")
 
 decomposition = STL(df['x'], period=12).fit()

decomposition 能够进一步绘制如下:

 fig, (ax1, ax2, ax3, ax4) = plt.subplots(nrows=4, ncols=1, sharex=True,figsize=(10,8))
 
 ax1.plot(decomposition.observed)
 ax1.set_ylabel('Observed')
 
 ax2.plot(decomposition.trend)
 ax2.set_ylabel('Trend')
 
 ax3.plot(decomposition.seasonal)
 ax3.set_ylabel('Seasonal')
 
 ax4.plot(decomposition.resid)
 ax4.set_ylabel('Residuals')
 
 plt.tight_layout()

7、工夫序列预测

预测是基于历史工夫数据在当前工夫上进一步预测数据点的过程。

这能够应用统计模型来实现,例如:

  • 自回归 (AR) 模型
  • 挪动均匀 (MA) 模型
  • 自回归挪动均匀 (ARMA) 模型
  • 自回归综合挪动均匀 (ARIMA) 模型
  • 节令自回归综合挪动均匀 (SARIMA) 模型
  • 带有外源回归量的节令自回归综合挪动均匀 (SARIMAX) 模型
  • 向量自回归 (VAR) 模型
  • 矢量误差校对 (VECM) 模型

对于较大的数据集,应用以下提到的深度学习模型:

  • 多层感知器(MLP)
  • 循环神经网络(RNN)
  • 长短期记忆网络(LSTM)
  • 自回归 LSTMs
  • 卷积神经网络(CNN)

8、预测范畴

依据历史工夫序列数据预测将来数据点的时间段。

例如依据 10 年记录的每日气温数据,预测下一周的气温。

在这种状况下,预测范畴是一周的工夫。

9、预测模型根本步骤

工夫序列预测模型次要由以下步骤组成:

  • 收集工夫序列数据
  • 开发预测模型
  • 将模型部署到生产环境中
  • 收集新数据
  • 监控和评估模型性能
  • 从新训练预测模型
  • 将新模型部署到生产环境中
  • 返回步骤 4

10、工夫序列预测与回归

上面是工夫序列预测与回归工作的次要区别。

工夫序列数据是有序的。这意味着察看 / 数据点依赖于以前的察看 / 数据点。因而,在模型训练期间,数据点程序不会被打乱。

工夫序列预测解决随工夫收集的数据。而回归能够解决不同类型的数据。

11、Naïve 预测与基线模型

基线模型是应用 naïve 对工夫序列数据进行预测构建的最简略的模型。作为比拟其余预测模型的基线。

以下假如可用于创立基线模型:

  • 将来值与工夫序列中的最初一个数据点雷同
  • 将来值与某一时期内的值的中位数 / 众数雷同
  • 将来的值等于肯定期间内的平均值
  • 将来的值与肯定期间内的所有值雷同

12、谬误指标

精确预测的目标是最小化数据中预测值与理论值之间的差距。所以有各种谬误指标用于监督和最小化这种差距。

罕用的误差指标如下:

  • 均方误差 (MSE)
  • 均匀绝对误差 (MAE)
  • 均方根误差 (RMSE)
  • 均匀相对百分比误差 (MAPE)

13、平稳性

安稳的工夫序列是其统计性质不随工夫变动的序列,这些统计属性包含:

  • 均值
  • 方差
  • 自相关性

个别的统计预测办法 (AR、MA、ARMA) 都假设工夫序列是安稳的。所以如果非安稳工夫序列数据与这些一起应用,后果将是不牢靠的。

14、变换

变换能够认为是使工夫序列安稳的数学过程。罕用的变换有:

差分计算从一个工夫步到另一个工夫步的变动。有助于在工夫序列数据中取得恒定的均值。

要利用差分,咱们只需从以后工夫步长的值中减去之前工夫步长的值。

一阶差分:对数据利用一次的差分;二阶差分:对数据利用两次的差分

对数函数利用于工夫序列以稳固其方差,然而对数变换后须要进行逆向变换,将最终的后果进行还原。

15、Dickey-Fuller (ADF) 测验

Augmented Dickey-Fuller (ADF) Test 是一种用于工夫序列数据的经济统计学测验办法,用于确定一个工夫序列是否具备单位根(unit root)。单位根示意工夫序列具备非平稳性,即序列的均值和方差不随工夫变动而稳固。ADF 测试的目标是确定工夫序列是否具备趋势,并且是否能够进行经济统计学剖析。

ADF 测试的外围假如是,如果工夫序列具备单位根,则序列是非安稳的。反之,如果序列不具备单位根,则序列是安稳的。ADF 测试通过对序列进行回归剖析来验证这些假如。

咱们能够间接应用 statsmodels 来进行这个测验

 from statsmodels.tsa.stattools import adfuller
 
 ADF_result = adfuller(time_series)
 
 print(f"ADF Result Value: {ADF_result[0]}")
 print(f"ADF Result p-value: {ADF_result[1]}")

16、自相干

是对工夫序列中由不同工夫步长隔开的值之间线性关系的度量。滞后是分隔两个值的工夫步数。

自相干函数 (ACF) 图用于测试工夫序列中的值是否随机散布或彼此相干(如果工夫序列具备趋势)。

 from statsmodels.graphics.tsaplots import plot_acf
 
 plot_acf(time_series, lags = 20)

这里的 x 轴上的值示意滞后,y 轴上的值示意由滞后分隔的不同值之间的相关性。

如果 y 轴上的任何值位于图的蓝色暗影区域,则该值在统计上不显著,比方上面的 ACF 图显示其值之间没有相关性(除了第一个与本身相干的值)。

17、平滑办法

平滑办法 (Smoothing Methods) 是一种用于对工夫序列数据进行平滑解决的技术,以便更好地察看数据的趋势和季节性成分。这些办法的指标是缩小随机噪声,突出数据中的长期变动模式。

常见的有:挪动平均法(Moving Average Method)、加权挪动平均法(Weighted Moving Average Method)、指数平滑法(Exponential Smoothing Method)、季节性平滑法(Seasonal Smoothing Method)

18、工夫序列数据特色

  1. 动态工夫序列(Static Time Series):动态工夫序列是指数据在工夫上没有变动的状况下进行剖析。也就是说,它假如观测到的工夫序列数据是固定的,没有随工夫的推移而发生变化。在动态工夫序列中,咱们通常关注数据的平均水平、趋势和季节性等动态特色。常见的动态工夫序列模型包含平均数模型、指数平滑模型和 ARIMA 模型等。
  2. 动静工夫序列(Dynamic Time Series):动静工夫序列是指数据在工夫上呈现出变动的状况下进行剖析。也就是说,它认为观测到的工夫序列数据是随工夫变动的,并且过来的值对将来的值有影响。在动静工夫序列中,咱们关注数据的动态性、趋势变动和周期性等动静特色。常见的动静工夫序列模型包含自回归挪动均匀模型(ARMA)、自回归积分滑动均匀模型(ARIMA)和向量自回归模型(VAR)等。

动态工夫序列假如数据在工夫上没有变动,次要关注数据的动态特色。动静工夫序列思考数据在工夫上的变动,并关注数据的动静特色。动态工夫序列能够看作是动静工夫序列的特例,当数据在工夫上没有变动时,能够将其视为动态工夫序列。

19、季节性(Seasonality),循环性(Cyclicity) 区别

季节性 (Seasonality) 和循环性 (Cyclicity) 都是形容工夫序列数据中反复呈现的模式,但它们之间存在一些区别。

季节性是在较短的时间尺度内,因为固定或变动的节令因素引起的周期性模式,而循环性则是在较长时间尺度内,因为经济或其余结构性因素引起的周期性模式。

季节性 (Seasonality) 是指工夫序列数据中因为节令因素引起的反复模式。这种模式通常是在较短的时间尺度内(例如每年、每季度、每月或每周)呈现的,并且在不同时间段内的观测值之间存在显著的相似性。季节性能够是固定的,即在每个节令周期内的模式绝对稳固,例如每年夏天都有低温;也能够是非固定的,即在节令周期内的模式可能有变动,例如某个节令的销售量在不同年份间稳定。

循环性 (Cyclicity) 是指工夫序列数据中具备较长周期性的模式。这种模式的周期能够大于或小于节令周期,并且循环性的持续时间通常比季节性更长。循环性可能是由经济、商业或其余结构性因素引起的,与季节性不同,循环性的模式不肯定依照固定的工夫距离呈现,而是依据内部因素的影响而变动。例如,房地产市场的周期性稳定就是一个循环性的例子。

20、工夫序列库举荐

PyFlux: PyFlux 是一个用于工夫序列剖析和建模的库,提供了多种模型,包含 ARIMA、GARCH、VAR 等。

PyCaret: PyCaret 是一个用于机器学习和自动化建模的库,它提供了简化工夫序列预测工作的工具。它反对主动特征选择、模型抉择和调优等性能,能够疾速构建工夫序列预测模型。

sktime: sktime 是一个专门用于工夫序列数据的机器学习库,它建设在 scikit-learn 之上,并提供了许多专门针对工夫序列的预处理和建模技术。

CausalImpact: CausalImpact 是一个用于因果效应剖析的库,它能够帮忙评估工夫序列数据中某个事件或解决对后果的影响。

tsfresh: tsfresh 是一个用于提取工夫序列特色的库,它提供了各种统计和工夫特征提取办法,用于工夫序列数据的特色工程。

https://avoid.overfit.cn/post/7bc21f124d284b47becbeca6dc5c07c7

作者:Ashish Bamania

正文完
 0