灰色系统

       做数模过程中使用的一些算法总结。

灰色系统

       在实际问题中,会遇到一些“不明确”的系统,要么是因为缺少大量的数据,要么是因为其内部机理不明确,致使对整个系统进行建模并定量描述十分困难,这种系统就被称为灰色系统。灰色系统建模的理论最早是由华中科技大学的邓聚龙教授确立的。

       灰色系统理论的重心在于尽管事物的表象很复杂,但是必定有其内在规律,只是被一些噪声因素“污染”。为此提出了一种新的分析方法——关联度分析,即根据事物发展态势的异同来衡量因素间的关联程度。

关联分析

       为了描述两因素之间的关联程度,引入了关联系数指标。若存在参考数列,其中K表示K时刻。假设存在m个比较数列,。则式


即为比较数列Xi对参考数列X0在K时刻的关联系数,其中称ρ∈[0,1]为分辨系数。分辨系数越大,则分辨率越高,反之则越小。上式定义的是各个时刻的关联系数,不方便整体比较,因此引入关联度,即下式,

      此外要注意的是,关联度的计算要求量纲相同。所以在此之前需要数据变换,以无量纲化。

数据变换

       设有序列,存在映射

       以下是几种基本的数据变换方式

  • 初值化变换

  • 均值化变换

  • 百分比变换

  • 倍数变换

  • 归一化变换

       其中X0为大于零的某个值。

  • 极差最大值化变换

  • 区间值变换

      以下是关联分析的Matlab程序:

clc,clear
load x.txt %把原始数据存放在纯文本文件 x.txt 中
for i=1:17
x(i,:)=x(i,:)/x(i,1); %标准化数据
end
data=x;
n=size(data,1);
ck=data(1,:);m1=size(ck,1);
bj=data(2:n,:);m2=size(bj,1);
for i=1:m1
    for j=1:m2
        t(j,:)=bj(j,:)-ck(i,:);
    end
jc1=min(min(abs(t')));jc2=max(max(abs(t')));
rho=0.5; %分辨系数ρ
ksi=(jc1+rho*jc2)./(abs(t)+rho*jc2);
rt=sum(ksi')/size(ksi,2);
r(i,:)=rt;
end

灰色预测

     灰色系统理论把一切随机量都看作灰色数—即在指定范围内变化的所有白色数的全体。对灰色数的处理不是找概率分布或求统计规律,而是利用数据处理的办法去寻找数据间的规律。通过对原始数列中的数据进行处理,产生新的随机性被显著减弱的数列,建立微分方程形式的模型。数的生成方式有多种:累加生成、累减生成以及加权累加等。

序列生成算子

  • 累加生成算子(AGO)

       设原始数据数列为,经AGO算子可生成序列,其中累加生成算子为

       对于原始数列,可以累加r次,记为r-AGO,但是实际中1-AGO最常用。注意这里的原始数列必须非负,否则会正负抵消,损失信息。

  • 累减生成算子(IAGO)

       IAGO即是累加的逆过程,其r-IAGO算子为

  • 均值生成算子

       设原始数据数列为,对于常数α∈[0,1],则称

为由原始数列在生成系数α下的邻值生成数。当α=0.5时,此时的生成数为紧邻均值生成数

检验指标

      由序列生成算子新生成的序列,弱化了原先的随机性,建立了以下指标,能初步定性分析规律。

  • 光滑比

       若,则称生成序列为准光滑序列。

  • 级比

      

      

       当满足指数规律时,即满足一阶线性微分方程。

 

      由于数列的离散性




       同时有以下结论:为非负准光滑序列,则的一次累加生成序列具有准指数规律

GM(1,1)

模型建立

       灰色系统理论的微分方程称为GM模型,GM(1,1)表示1阶的、1个变量的微分方程模型。设原始数据数列为

,经过1-AGO算子作用生成数据序列,再令的紧邻均值生成序列,即,则称

       为GM(1,1)模型的基本形式,-a称为发展系数,b称为灰色作用量。


       *注意

       1.为了保证模型的可行性,先要对数据进行检验处理,这里要使用到上面提到的级比。如果所有的级比都在范围内,则可以使用GM(1,1)模型。否则必须对原始数列进行处理,可去适当的常数c,使

,处理后的数列满足上述条件。也有其他预处理方法如数据开n方、数据取对数、数据平滑和运用序列算子弱化或强化原始数据数列。

      2.实际应用中:

      1) 当-a ≤ 0.3 时,GM(1,1)模型可用于中长期预测;

      2) 当0.3 ≤ -a≤ 0.5时,GM(1,1)模型可用于短期预测,中长期慎用;

      3) 当0.5 ≤ -a ≤ 0.8时,GM(1,1)模型短期预测应谨慎;

      4) 当0.8 ≤-a≤ 1时,应采用残差修正GM(1,1)模型;

      5) 当1 ≤-a时,不宜采用GM(1,1)模型;


模型求解

  • 求解a,b
      a,b参数需要通过 求解。若为参数列,且

       参数的最小二乘估计满足,

  • 解微分方程

       上式为GM(1,1)的白化方程。求解此方程的解为:


       由此可还原值



X0=[3941 3941 3941 3941 3941 3744 3567 3621 3621 3621 3621 3621 3621 3441 3613 3614 3614 3614 3614 3458 3438];
for i=1:21
X1(i)=sum(X0(1:i));
end
for k=2:21
Z(k)=0.5*X1(k)+0.5*X1(k-1);
end
for i=1:20
b(i,1)=-Z(i+1);
y(i)=X0(i+1);
end
b(:,2)=1;
y=y';
au=b\y;
yc1(1)=X0(1);
for k=1:21
c=X0(1)-au(2)/au(1);
yc1(k+1)=c*exp(-au(1)*k)+au(2)/au(1);
end
yc0(1)=X0(21);
for k=1:21
yc0(k+1)=yc1(k+1)-yc1(k);
end
disp(uint16(yc0(2:1:22)));
yco=uint16(yc0(1:1:21));
for i=1:21
e0(i)=X0(i)-yco(i);
end
maxl=max(abs(e0));
r=1;
 for k=2:21
r=r+0.5*maxl/(abs(e0(k))+0.5*maxl);
end


      除了GM(1,1)模型之外,还有GM(1,N)模型、GM(2,1)模型、Verhulst 模型等等。具体可以查看灰色系统理论及其应用


参考资料:

       数学建模(第二版),陈光亭,裘哲勇

       灰色预测GM(1,1)模型的改进及应用,杨华龙


知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值