minminx0(k)?xi(k)?18.18 maxmaxx0(k)?xi(k)?305.33 ?i(k)? 据前文分析,设分辨系数为0.5。
将相应的x0(k)与xi(k)的数值代入式?i(k)?18.18??305.33
x0(k)?xi(k)??305.33?min???max中,得
????max ?1??0.73,0.88,0.92,0.88,0.84,0.97,0.87,0.88,1? ?2??0.70,0.74,0.89,0.85,0.73,0.78,0.39,0.68,0.88? ?2??0.94,0.83,0.82,0.72,0.73,0.74,0.37,0.60,0.83?
1n 步3:算出关联度R(x0,xi)。由公式Ri???i(k)分别计算出痢疾、肝炎、疟疾关于整个传
nk?1染病的关联度R1,R2,R3:
19 R1?R(x0,x1)???1(k)? 0.825
9k?119 R2?R(x0,x2)???2(k)?0.8239
9k?119 R3?R(x0,x3)???3(k)? 0.8237
9k?1 步4:比较关联度大小给出结论。由R1?R2?R3,说明痢疾发病与整个传染病关系最密切,而肝炎、疟疾与整个传染病的密切程度依次差些。(见附件4)
所得到的结论是:通过高校传染病发病率情况,建立灰色预测模型,预测得到1993年的发病率为157.13。另外利用灰色关联度分析了三大传染病在高校传染病中的相关关系,得到关联度大小比较R1?R2?R3,知道在大学生中防治传染病,首先要防治好痢疾。从医学角度看,虽然肝炎的影响不如痢疾,但肝炎病对人体的影响大,又不易治愈,所以高校对肝炎的防治也不能放松。
6、小 结
本文对灰色预测模型进行了推导研究,对GM(1,1)模型进行了残差、关联度及后验差检验,并推广了GM(1,1)模型到GM(1,N)模型。另外对灰关联度技术进行了说明并进一步推导进行了改进。 灰色模型是一个较新的研究方向,有许多问题需要进一步研究和探讨,由于时间有限,本文只是对灰色预测模型技术进行了一些初步的探讨,今后将在下述问题上进一步深入研究:
18
1.本文只是对背景值、数据序列函数变换和初始条件选择进行了研究,没有对影响灰色预测模型精度的其它因素进行研究,所以需要给出进一步优化灰色模型的方法。
2.灰色模型与其它模型的组合研究,比如与回归模型,马尔可夫模型的组合研究。
另外matlab语言具有良好的运行环境、强大的函数资源,其编程效率远远高于其他高级语言。多变量灰色预测模型广泛的应用于许多领域。但该模型参数估计以及预测都需要经过比较复杂的计算,本文灰色预测模型通过matlab程序能够方便的解决模型的计算问题。
参考文献:
[1]宋健.人口预测与人口控制[M].北京:人民出版社,1980.
[2]邓聚龙.灰色系统理论基教程[M].武汉:华中科技大学出版社,1990.
[3]骆平,王绍锦等.辽阳地区1997-2005年日最大负荷及供电负荷预测[J].华北电力技术,1997,6:33-34.
[4]陈华友,吴涛,许义生.灰关联空间与灰关联度计算的改进[J].安徽大学学报(自然科学版),1999,23(4):1-4.
[5]谭冠军.GM(1,1)模型的背景值构造方法和应用(1)[J].系统工程理论与实践,2000,(4):98- 103. [6]王义闹,刘开第,李应川.优化灰导数白化值的 GM(1,1)建模法[J].系统工程理论与实践,2001, 21(5):124-128.
[7]吕林正,吴文江.灰色模型GM(1,1)优化探讨[J].系统工程理论与实践,2001,(8):92-96. [8]邓聚龙.灰色理论基础[M].武汉:华中科技大学出版社,2002.
[9]罗党,刘思锋,党耀国.灰色 GM(1,1)优化[J].中国工程科学,2003,(8):50-53. [10]王钟羡 ,吴春笃.GM(1,1)改进模型及其应用[J].数学的实践与认识,2003,(9):20-24. [11]吴熳红,杨继旺.几种电力负荷预测方法及其比较[J].广东电力,2004,(1):17-21.
[12]王会青,王婷,谷志红.城市电力需求的灰色预测模型及修正研究[J].电力系统及其自动化学报,2005.2:74-75.
[13]廉巍巍,杜欣慧,武晓冬,宫改花.灰色等维递补预测模型在电力系统长期负荷预测中的应用[J] . 科技情报开发与经济,2006,11(5):167-168.
[14]赵海青,等.维递补灰色校正模型的研究及应用[J].运筹与管理,2007,16(1):97-99.
19
附 录
附件1:GM程序(matlab) clc; clear;
%X=[5698,5703,5707,5719,5724;785,788,789,789,790;5767,5775,5790,5804,5811];
%X=[2.67,3.13,3.25,3.36,3.56,3.72];
X=[100.23,85.62,64.53,86.63,105.89,83.55,316.47,135.93,56.56]; N=size(X); m1=N(1);
m2=N(2);%m1和m2分别表示X的行数和列数 k0=3;%预测的阶数-1 for i=1:m1 n=i x0=X(i,:)
E=triu(ones(m2));
x1=x0*E;%E表示元素为1上三角阵 b1=x1 b1(m1)=[]; b2=x1 b2(m2)=[]; b=-0.5*(b1+b2) B=[b;ones(1,m2-1)]; B=B' B'*B inv(B'*B) y0=x0; y0(1)=[]; y0=y0'
A=((inv(B'*B))*B')*y0 a=A(1),u=A(2),u_a=u/a k=0:m2+k0;
x2=(x0(1)-u_a)*exp(-k*a)+u_a; x3=x2
x3(m2+k0+1)=[];
20
x4=[0 x3]; x5=x2-x4 x6=x5(1:m2); Q=x0-x6 r=Q./x0 s1=std(x0) Qmean=mean(Q) s2=std(Q) C=s2/s1 D=abs(Q-Qmean) p0=0.6745*s1 t=0; for j=1:m2 d=D(j); if(d P=t/m2 end 附件2:GM11fcn程序 function Xe=GM11fcn(solution,iter) % 包含了GM(1,1)预测中累积量X1的解析通式。输入解析式系数solution和 % 欲预测的iter代数,输出从1到iter代的预测值 k=1:iter; temp=solution(1,1).*exp(solution(1,2).*(k-1))+solution(1,3); Xe(1)=temp(1); for i=2:length(k) Xe(i)=temp(i)-temp(i-1); End 附件3:GM11程序 function [solution p C error]=GM11(x0) % GM(1,1)预测。输入X0,输出累计量X1的解析表达式的系数solution,预测 21 % 评价指标p、C,预测值与样本相对误差error %x0=[2.67,3.13,3.25,3.36,3.56,3.72];%gm1(x); 测试数据 x0=[100.23,85.62,64.53,86.63,105.89,83.55,316.47,135.93,56.56]; leng=length(x0) for j=1:leng x1(j)=sum(x0(1,1:j)); end z(1)=x1(1); for j=2:leng z(j)=[0.5 0.5]*[x1(j) x1(j-1)]'; end B=[-z(1,2:leng)' ones(leng-1,1)] Y=[x0(1,2:leng)'] A=inv(B'*B)*B'*Y a=A(1) b=A(2) solution=[x0(1)-b/a -a b/a]; solution xEstimate=GM11fcn(solution,leng); xEstimate xAverage=mean(x0); xAverage epsino=x0-xEstimate; epsino eAverage=mean(epsino); eAverage S1=var(x0) S2=(S1)^(1/2) C=S2/S1 p=0; for m=1:leng if abs(epsino(m)-mean(epsino))<0.6745*S2 p=p+1; end end 22 S0=0.6745*S2; S0 p=p/leng error=100.*(x0-xEstimate)./x0 附件4:灰色关联度程序 function f=grayrelated(X,Y) %这里X是标准化后的参考序列,Y是评价矩阵 Y=[19.46 44.19 30.98 45.86 55.47 60.34 271.9 94.93 38.28 9.37 8.29 25.81 38.22 25.21 18.57 33.43 36.68 14.14 71.34 33.14 7.74 2.55 25.21 4.64 11.14 4.32 4.04];%输入评价矩阵Y X=[100.23 85.62 64.53 86.63 105.89 83.55 316.47 135.93 56.56];%X为参考序列,均为1,个数就是指标个数,情形不同要修改个数 Len=size(Y,2);%取Y矩阵的列数,也就是指标的个数 Wen=size(Y,1);%取行数,就是目标个数 %for i=1:Len %Y(:,i)=(Y(:,i)-mean(Y(:,i)))/sqrt(var(Y(:,i))); %将Y矩阵用统计方法标准化标准化, %end for i=1:Len-1 S(:,i)=(Y(:,i)-min(Y(:,i)))./(max(Y(:,i))-min(Y(:,i)));%将Y矩阵标准化,适用于越大越好型,把该型指标放在一起,前n-1个,不同情形要修改 D=(max(Y(:,5))-Y(:,5))./(max(Y(:,5))-min(Y(:,5))); %将Y矩阵标准化,适用于越小越好型,把该型指标放在一起,第n个,不同情形要修改 end SD=[S,D];%把两种不同类型的指标组合在一起 temp=SD;% 给temp变量分配空间,其实可以不分配,只是先分配编译的速度更快 for i=1:Wen temp(i,:)=abs(SD(i,:)-X);%计算评价矩阵与参考序列的差的绝对值 end p=0.5;%分辨系数 related=Y;%给关联系数related变量分配空间 Min=min(min(temp)); Max=max(max(temp)); for i=1:Wen related(i,:)=(Min+p*Max)./(temp(i,:)+p*Max); end f=size(1,Wen);%给关联度分配空间 for i=1:Wen f(i)=mean(related(i,:)); end %w=[1/Len 1/Len 1/Len 1/Len 1/Len] %若已知各指标权重,可在此修改 %f=w*related' 23