灰度预测模型介绍及matlab仿真

一、灰色预测的概念
(1)顾名思义,灰色预测是针对灰色系统进行预测的一种方法,所以有必要介绍下灰色系统,大家可由此得知白色和黑色系统以下不做介绍。
灰色系统是指系统内的一部分信息是已知的,另一 部分信息是未知的,系统内各因素间有不确定的关系。

(2)那么灰色系统可用于哪些情形呢?
• 序列性:用等时距观测到的反映预测对象特征的一系列数量值构造灰色预测模型,预测未来某一时刻的特征量,或达到某一
特征量的时间。(时间性或者说序列性是灰色预测的很重要的一个特征点)
• 少数据性:原始数据序列可以少到只有4个数据。


二、灰色生成数列
对灰数的处理主要是利用数据处理方法去寻求数据间的内在规律,通过对已知数据列中的数据进行处理而产生新的数据列,以此来研究寻找数据的规律性,这种方法称为数据的生成。
数据的生成方式有多种,以下减少基本的模型需要用到的三种处理方法:累加生成、累减生成和均值生成

(1)累加生成

累加的规则:
将原始序列的第一个数据作为生成列的第一个数据,将原始序列的第二个数据加到原始序列的第一个数据上,其和作为生成列的第二个数据,将原始序列的第三个数据加到生成列的第二个数据上,其和作为生成列的第三个数据,按此规则进行下去,便可得到生成列。

累加举例 :设原始时间序列为{1,2,1.5,3} 曲线是摆动的,起伏变化幅度较大
                   而一次累加生成列为{1,3,4.5,7.5 }已呈现明显的增长规律性

注:一般(90%的情况)做一次累加就可以了,有个别情况需要做多次累加(做几次累加的判别依据之后介绍)。

(2) 累减生成(累减就不做举例了)
将原始序列前后两个数据相减得到累减生成序列
• 累减是累加的逆运算,累减可将累加生成 列还原为非生成列,在建模中获得增量信息。

(3)均值生成数

紧邻生成数:Z(k)=a*x(k)+(1-a)*x(k-1)

紧邻生成均值数: Z(k)=0.5*x(k)+0.5*x(k-1)

三、GM(1,1)模型

(1)灰微分方程模型

        x(k)+a *z(k)= b

      变量介绍:x(k)为原始序列,一般称为灰导数;a为发展系数;z(k)为一次均值生成序列;b为灰作用量。

(2)白化模型

      \frac{dx}{dt}+ax(t)=b

     式中的x(t)都为一次累加序列.

(3)故可以做以下求解

 

 

(4)因为可得到以下解

 

四、检验

在建立模型之前还需要对原始序列做光滑性检验和对累加序列做级数检验(这也是判别需要做几次累加的标准之一)。

光滑性:

其结果在(0,0.5)之间即满足光滑性

级数:

其各结果最大与最小值的差值小于0.5即满足级数要求。

五、matlab仿真

function [ G ] = GM( A,num )
%灰度预测模型函数 兰勇,2018.7.20
%   A为原始序列,num为预测数目,G为各预测值

syms a b;
c=[a b]';%发展系数和灰作用量
B=cumsum(A);  %生成累加序列
n=length(A);

for i=2:n
    P(i)=A(i)/B(i-1); %光滑性检验
    Q(i)=B(i)/B(i-1); %准指数性检验
end

for i=1:(n-1)
    C(i)=(B(i)+B(i+1))/2; %生成生成紧邻均值累加序列
end

%计算待定参数的值
D=A;
D(1)=[];
D=D';
E=[-C;ones(1,n-1)];
c=inv(E*E')*E*D;
%c=c';
a=c(1);
b=c(2);
%预测后续数据
F=[];F(1)=A(1);
for i=2:(n+num)  %推测之后的num个一次累加序列
    F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;
end

G=[];G(1)=A(1);
for i=2:(n+num)  %推测之后的num个原始序列
    G(i)=F(i)-F(i-1);
end

%残差计算
for i=1:n  %推测之后的num个原始序列
    s(i)=abs(A(i)-G(i));
end
sum(s)/n;

%图像可视化
t1=1:n;
t2=1:n+num;
G;
h=plot(t1,A,'o',t2,G,'-'); %原始数据与预测数据的比较
set(h,'LineWidth',1.5); 

end

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值