时序分析中的常用算法,都在这里了
时序分析就是利用过去一段时间内某事件时间的特征来预测未来一段时间内该事件的特征。这是一类相对比较复杂的预测建模问题,和回归分析模型的预测不同,时间序列模型是依赖于事件发生的先后顺序的,同样大小的值改变顺序后输入模型产生的结果是不同的。
时序问题都看成是回归问题,只是回归的方式(线性回归、树模型、深度学习等)有一定的区别。
时序分析包括静态时序分析(STA)和动态时序分析。
以下为几种常见的时序分析算法
1 深度学习时序分析
RNN(循环神经网络)
循环神经网络是指一个随着时间的推移,重复发生的结构。在自然语言处理(NLP),语音图像等多个领域均有非常广泛的应用。RNN网络和其他网络最大的不同就在于RNN能够实现某种“记忆功能”,是进行时间序列分析时最好的选择。如同人类能够凭借自己过往的记忆更好地认识这个世界一样。RNN也实现了类似于人脑的这一机制,对所处理过的信息留存有一定的记忆,而不像其他类型的神经网络并不能对处理过的信息留存记忆。
优点:
具有时间记忆功能,适用于解决时间序列中间隔较短的问题;
缺点:
对较远时间步的数据易产生梯度消失、梯度爆炸的问题;
LSTM(长短时记忆网络)
长短时记忆网络(LSTM,Long Short-Term Memory)是一种时间循环神经网络,是为了解决一般的RNN(循环神经网络)存在的长期依赖问题而专门设计出来的,所有的RNN都具有一种重复神经网络模块的链式形式。
优点:
适合于处理和预测时间序列中间隔和延迟非常长的重要事件。
缺点:
参数量过大、易产生过拟合的问题。
2 传统的时序分析模型
自回归(Auto Regression, AR)
移动平均线(Moving Average, MA)
自回归移动平均线(Autoregressive Moving Average, ARMA)
自回归综合移动平均线(Autoregressive Integrated Moving Average, ARIMA)
季节性自回归整合移动平均线(Seasonal Autoregressive Integrated Moving Average, SARIMA)
具有外生回归量的季节性自回归整合移动平均线(Seasonal Autoregressive Integrated Moving-Average with Exogenous Regressors, SARIMAX)
自回归模型 AR
自回归模型(Autoregressive Model,简称 AR 模型)是一种时间序列分析方法,用于描述一个时间序列变量与其过去值之间的关系。AR模型假设当前观测值与过去的观测值之间存在线性关系,通过使用过去的观测值来预测未来的观测值。
优点:
简单性:AR模型是一种线性模型,易于理解和实现。它仅使用过去的观测值作为自变量,没有其他复杂的因素需要考虑。
建模能力:AR模型可以捕捉时间序列数据的自相关结构,即当前观测值与过去观测值之间的关系。它能够提供对未来观测值的预测,并揭示数据中的趋势和模式。
缺点:
只适用于平稳序列:AR模型要求时间序列是平稳的,即均值、方差和自相关不随时间变化。如果序列不平稳,可能需要进行差分操作或使用其他模型来处理非平稳性。
对过去观测值敏感:AR模型的预测结果受到过去观测值的影响,因此在处理长期预测时可能会出现误差累积的问题。较大的阶数可能会导致模型过拟合,而较小的阶数可能无法捕捉到时间序列的复杂动态。
无法处理季节性数据:AR模型无法直接处理具有明显季节性的时间序列。对于具有季节性模式的数据,可以使用季节性AR模型(SAR)或ARIMA模型进行建模。
移动平均法(MA)
移动平均法(MA):该方法基于数据的平均数,并假设未来的值与过去的值之间具有一定的平稳性。
优点:
能够捕捉到时间序列数据中的移动平均关系。MA模型利用过去时间步白噪声误差项的线性组合来预测当前观测值,因此可以捕捉到数据中的移动平均性。
相对简单和直观。MA模型的参数表示过去时间步白噪声误差项的权重,可以通过估计这些权重来拟合模型。
缺点:
只能捕捉到移动平均关系,无法捕捉到自回归关系。MA模型忽略了过去时间步观测值,可能无法捕捉到数据中的自相关性。
对于某些时间序列数据,MA模型可能需要较高的阶数才能较好地拟合数据,导致模型复杂度增加。
自回归滑动平均模型
自回归滑动平均模型(ARMA模型,Auto-Regression and Moving AverageModel)是研究时间序列的重要方法,由自回归模型(AR模型)与滑动平均模型(MA模型)为基础“混合”而成,具有适用范围广、预测误差小的特点。
自回归差分移动平均线(Autoregressive Integrated Moving Average, ARIMA)
ARIMA模型全称为自回归差分移动平均模型(Autoregressive Integrated Moving Average Model)。ARIMA模型主要由三部分构成,分别为自回归模型(AR)、差分过程(I)和移动平均模型(MA)。
ARIMA模型的基本思想是利用数据本身的历史信息来预测未来。一个时间点上的标签值既受过去一段时间内的标签值影响,也受过去一段时间内的偶然事件的影响,这就是说,ARIMA模型假设:标签值是围绕着时间的大趋势而波动的,其中趋势是受历史标签影响构成的,波动是受一段时间内的偶然事件影响构成的,且大趋势本身不一定是稳定的
简而言之,ARIMA模型就是试图通过数据的自相关性和差分的方式,提取出隐藏在数据背后的时间序列模式,然后用这些模式来预测未来的数据。其中:
AR部分用于处理时间序列的自回归部分,它考虑了过去若干时期的观测值对当前值的影响。
I部分用于使非平稳时间序列达到平稳,通过一阶或者二阶等差分处理,消除了时间序列中的趋势和季节性因素。
MA部分用于处理时间序列的移动平均部分,它考虑了过去的预测误差对当前值的影响。
结合这三部分,ARIMA模型既可以捕捉到数据的趋势变化,又可以处理那些有临时、突发的变化或者噪声较大的数据。所以,ARIMA模型在很多时间序列预测问题中都有很好的表现。
优点:
模型十分简单,只需要内生变量而不需要借助其他外生变量。(所谓内生变量指的应该是仅依赖于该数据本身,而不像回归需要其他变量)
缺点:
要求时序数据是稳定的(stationary),或者是通过差分化(differencing)后是稳定的。
本质上只能捕捉线性关系,而不能捕捉非线性关系。
季节性自回归整合移动平均模型 SARIMA
SARIMA 是一种常用的时序分析方法,它是 ARIMA 模型在季节性数据上的扩展。SARIMA 模型可以用于预测季节性时间序列数据,例如每年的销售额或每周的网站访问量。下面是SARIMA模型的优缺点:
优点:
SARIMA模型可以很好地处理季节性数据,因为它考虑了时间序列数据中的季节性因素。
SARIMA模型可以对时间序列数据进行长期预测,因为它可以捕捉到数据中的趋势和周期性变化。
SARIMA模型可以用于多变量时间序列数据,因为它可以同时考虑多个变量之间的关系。
缺点:
SARIMA模型需要大量的历史数据来训练,因此在数据量较少的情况下可能不太适用。
SARIMA模型对异常值比较敏感,因此需要对异常值进行处理。
SARIMA模型的计算复杂度较高,需要进行大量的计算和优化。
具有外生回归量的季节性自回归整合移动平均模型 SARIMAX
具有外生回归量的季节性自回归整合移动平均模型(Seasonal Autoregressive Integrated Moving-Average with Exogenous Regressors, SARIMAX)是在差分移动自回归模型(ARIMA)的基础上加上季节(S,Seasonal)和外部因素(X,eXogenous)。也就是说以ARIMA基础加上周期性和季节性,适用于时间序列中带有明显周期性和季节性特征的数据。
3 其他时序模型
这类方法以 lightgbm、xgboost 为代表,一般就是把时序问题转换为监督学习,通过特征工程和机器学习方法去预测;这种模型可以解决绝大多数的复杂的时序预测模型。支持复杂的数据建模,支持多变量协同回归,支持非线性问题。
不过这种方法需要较为复杂的人工特征过程部分,特征工程需要一定的专业知识或者丰富的想象力。特征工程能力的高低往往决定了机器学习的上限,而机器学习方法只是尽可能的逼近这个上限。特征建立好之后,就可以直接套用树模型算法 lightgbm/xgboost,这两个模型是十分常见的快速成模方法,除此之外,他们还有以下特点:
计算速度快,模型精度高;
缺失值不需要处理,比较方便;
支持 category 变量;
支持特征交叉。
具体选择哪种方法需要根据数据的性质、问题的特点以及自身的经验和能力来综合考量。
需要根据具体的数据特征、问题要求和自身的能力来选择合适的时间序列预测方法。有时,结合多个方法可以提高预测的准确性和稳定性。同时,为了更好地选择模型和评估预测结果,对数据进行可视化分析和模型诊断也是很重要的。
图片使用申明:原创文章图片源自‘Canva可画’平台免费版权图片素材;引用文章源自引用平台文章中所使用的原图。