一、灰色预测
1. GM(1,1)模型理论
GM(1,1)模型适合具有较强的指数规律的数列,只能描述单调的变化过程。
已知元素序列数据:
做一次累加生成(1-AGO)序列:
其中,
令为的紧邻均值生成序列:
其中,
建立GM(1,1)的灰微分方程模型为:其中,为发展系数,为灰色作用量。设为待估参数向量,即,则灰微分方程的最小二乘估计参数列满足 其中
再建立灰色微分方程的白化方程(也叫影子方程):
白化方程的解(也叫时间响应函数)为
那么相应的GM(1,1)灰色微分方程的时间响应序列为:
取,则
再做累减还原可得即为预测方程。
注1:原始序列数据不一定要全部使用,相应建立的模型也会不同,即和不同;
注2:原始序列数据必须要等时间间隔、不间断。
2. 算法步骤
(1) 数据的级比检验
为了保证灰色预测的可行性,需要对原始序列数据进行级比检验。
对原始数据列,计算序列的级比:
若所有的级比都落在可容覆盖内,则可进行灰色预测;否则需要对做平移变换,,使得满足级比要求。
(2) 建立GM(1,1)模型,计算出预测值列。
(3) 检验预测值:
① 相对残差检验,计算 若 ,则认为达到一般要求,若 ,则认为达到较高要求;
② 级比偏差值检验
根据前面计算出来的级比, 和发展系数, 计算相应的级比偏差: 若, 则认为达到一般要求,若, 则认为达到较高要求。
(4) 利用模型进行预测。
二、时间序列分析
ARMA
ARMA模型——自回归滑动平均模型,模型参量法高分辨率谱分析方法之一。
基本原理:
将预测指标随时间推移而形成的数据序列看作是一个随机序列,这组随机变量所具有的依存关系体现着原始数据在时间上的延续性。
一方面,影响因素的影响,另一方面,又有自身变动规律,假定影响因素为x1,x2,…,xk,由回归分析,
其中Y是预测对象的观测值,Z为误差。作为预测对象Yt受到自身变化的影响,其规律可由下式体现,
误差项在不同时期具有依存关系,由下式表示,
由此,获得ARMA模型表达式:
ARIMA
python实现参考:https://cloud.tencent.com/developer/article/1646121