MATLAB灰色预测

您所在的位置:网站首页 top10电影数据分析kettle MATLAB灰色预测

MATLAB灰色预测

2023-03-26 17:12| 来源: 网络整理| 查看: 265

一.灰色预测 1.灰色系统下的灰色预测 什么是灰色系统?

所谓的灰色系统其实就是夹杂在白色系统和黑色系统之中的一种系统,而白色系统就是全部信息已知的系统,黑色系统就是全部信息未知的系统。所以,夹在这两种系统中间的灰色系统就是部分信息已知,而部分信息也是未知的系统。

什么是灰色预测?

灰色预测就是在灰色系统中所作的预测。灰色预测就是在部分信息已知,而部分信息也是未知的前提下做的一种预测分析。灰色预测通过鉴别个因素之间的差异程度,进行关联分析,对原始数据处理后生成一定规律性的序列,然后建立相应的微分方程模型,从而预测事物未来的发展趋势,最后得到其发展的模型。

2.如何实现灰色预测GM(1,1) 了解灰色生成

①累加生成: 通过数列间各时刻数据的依个累加以得到新的数据与数列。 (最开始看的时候我还不信累加生成能增强数据规律性所以我用MATLAB画了个图,对于[6 3 8 10 7]这组数据好像确实累加后规律更明显,累加后的数列呈指数增长趋势) 在这里插入图片描述 ②累减生成: 将原始序列前后两个数据相减得到累减生成序列。(将累加的数据累减就得到原始序列) ③均值生成: 将前后两个数据相加在除以2得到均值生成序列。

实现GM(1,1)——一阶微分方程,且只含一个变量的灰色模型

原始序列 x ( 0 ) = ( x ( 0 ) ( 1 ) , x ( 0 ) ( 2 ) , x ( 0 ) ( 3 ) , . . . , x ( 0 ) ( n ) ) x^{(0)}=(x^{(0)}(1),x^{(0)}(2),x^{(0)}(3),...,x^{(0)}(n)) x(0)=(x(0)(1),x(0)(2),x(0)(3),...,x(0)(n)) 先累加操作得到序列 x ( 1 ) = ( x ( 1 ) ( 1 ) , x ( 1 ) ( 2 ) , x ( 1 ) ( 3 ) , . . . , x ( 1 ) ( n ) ) x^{(1)}=(x^{(1)}(1),x^{(1)}(2),x^{(1)}(3),...,x^{(1)}(n)) x(1)=(x(1)(1),x(1)(2),x(1)(3),...,x(1)(n)) x ( 1 ) ( t ) = ∑ k = 1 t x ( 1 ) ( k ) x^{(1)}(t)=\sum_{k=1}^{t}x^{(1)}(k) x(1)(t)=k=1∑t​x(1)(k)

然后均值操作累加生成的数列

z ( 1 ) = ( z ( 1 ) ( 2 ) , z ( 1 ) ( 3 ) , . . . , z ( 1 ) ( n ) ) z^{(1)}=(z^{(1)}(2),z^{(1)}(3),...,z^{(1)}(n)) z(1)=(z(1)(2),z(1)(3),...,z(1)(n)) z ( 1 ) ( k ) = 0.5 x ( 1 ) ( k ) + 0.5 x ( 1 ) ( k ) z^{(1)}(k)=0.5x^{(1)}(k)+0.5x^{(1)}(k) z(1)(k)=0.5x(1)(k)+0.5x(1)(k) 对累加生成序列建立微分方程——白化微分方程(这里要说一下因为刚刚提过累加后的数列呈指数增长,所以可以用指数函数进行拟合所以建立如下微分方程)如下微分方程用数学知识求得明显为指数关系 d x ( 1 ) d t + a x ( 1 ) = b \frac{dx^{(1)}}{dt}+ax^{(1)}=b dtdx(1)​+ax(1)=b 然后建立灰微分方程这里是知乎网友解释的建立过程 x ( 0 ) ( k ) + a z ( 1 ) ( k ) = b x^{(0)}(k)+az^{(1)}(k)=b x(0)(k)+az(1)(k)=b a a a为发展系数, b b b为灰色作用量 根据最小二乘法求 a a a, b b b其中 a ^ \hat{a} a^=[ a a a; b b b] 在这里插入图片描述 求解刚刚建立的白化微分方程 x ( 1 ) ( t ) = ( x ( 1 ) ( 0 ) − b a ) e − a t + b a x^{(1)}(t)=(x^{(1)}(0)-\frac{b}{a})e^{-at}+\frac{b}{a} x(1)(t)=(x(1)(0)−ab​)e−at+ab​ 取 x ( 1 ) ( 0 ) = x ( 0 ) ( 1 ) x^{(1)}(0)=x^{(0)}(1) x(1)(0)=x(0)(1),则 x ( 1 ) ( k + 1 ) = ( x ( 0 ) ( 1 ) − b a ) e − a k + b a x^{(1)}(k+1)=(x^{(0)}(1)-\frac{b}{a})e^{-ak}+\frac{b}{a} x(1)(k+1)=(x(0)(1)−ab​)e−ak+ab​ k = 1 , 2 , 3 , ⋯   , n − 1 k=1,2,3,\cdots,n-1 k=1,2,3,⋯,n−1

最后累减还原即为预测方程 x ( 0 ) ( k + 1 ) = x ( 1 ) ( k + 1 ) − x ( 1 ) ( k ) = ( x ( 0 ) ( 1 ) − b a ) ( 1 − e a ) e − a k x^{(0)}(k+1)=x^{(1)}(k+1)-x^{(1)}(k)=(x^{(0)}(1)-\frac{b}{a})(1-e^a)e^{-ak} x(0)(k+1)=x(1)(k+1)−x(1)(k)=(x(0)(1)−ab​)(1−ea)e−ak k = 1 , 2 , 3 , ⋯   , n − 1 k=1,2,3,\cdots,n-1 k=1,2,3,⋯,n−1 注意:①原始序列数据不一定要全部使用,相应建立的模型也会不同,即 a a a和 b b b不同。②原始序列数据必须要等时间间隔、不间断。

灰色模型检验

① 计算 x ( 0 ) ( t ) x^{(0)}(t) x(0)(t)与 x ^ ( 0 ) ( t ) \hat{x}^{(0)}(t) x^(0)(t)之间的残差 e ( 0 ) ( t ) e^{(0)}(t) e(0)(t)和相对误差 q ( x ) q(x) q(x): e ( 0 ) ( t ) = x ( 0 ) ( t ) − x ^ ( 0 ) ( t ) e^{(0)}(t)=x^{(0)}(t)-\hat{x}^{(0)}(t) e(0)(t)=x(0)(t)−x^(0)(t) q ( x ) = e ( 0 ) ( t ) x ( 0 ) ( t ) q(x)=\frac{e^{(0)}(t)}{x^{(0)}(t)} q(x)=x(0)(t)e(0)(t)​ ② 求原始数据的均值 x 0 x^0 x0以及方差 s 1 s_1 s1​。 ③ 求 e ( 0 ) ( t ) e^{(0)}(t) e(0)(t)的平均值 q ˉ \bar{q} qˉ​以及残差的方差 s 2 s_2 s2​。 ④ 计算方差比 C = s 2 s 1 C=\frac{s_2}{s_1} C=s1​s2​​。 ⑤ 求小误差概率 P = P ( ∣ e ( t ) ∣ < 0.6745 s 1 ) P=P({|e(t)|



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3