第24卷第2期
2008年6月
沧州师范专科学校学报
JournalofCangzhouTeachers’College
No.2V01.24
Jun.2008
用MATLAB实现灰色预测GM(1,1)模型
唐丽芳1,贾冬青2,盂庆鹏2
(1.沧州师范专科学校,河北沧州06100l;2.河北工程技术高等专科学校,河北沧州061001)
摘要:在分析灰色预测模型基本原理的基础上,利用MATLAB强大的矩阵功能,用MATLAB实现灰色预
测GM(1,1)模型算法,并通过实例分析验证了程序的准确性和可靠性。
关键词:灰色系统;灰色预测;GM(1,1)模型;关联度中图分类号:TP391
文献标识码:A
文章编号:1008-4762(2008)02.0035.03
目前使用最广泛的灰色预测模型就是关于数列预测的一个变量、一阶微分的GM(1,1)模型。它是基于随机的原始
一、背景知识和模型介绍
(一)背景知识
MATLAB是MatrixLaboratory的缩写,即为“矩阵实验
时间序列,经按时间累加后所形成的新的时间序列呈现的规律
可用一阶线性微分方程的解来逼近。经证明,经一阶线性微分方程的解逼近所揭示的原始时间序列呈指数变化规律。因此,当原始时间序列隐含着指数变化规律时,灰色模型GM(1,1)的预测是非常成功的。
给定原始序列:
室”。MATLAB是集数学计算、图形处理和程序语言设计于一体的著名数学软件。它对矩阵运算之功能堪称一流,由于使用矩阵描述问题更像数学表达式,所以编写的程序不仅高效,而且易读。在欧美高校,MATLAB已经成为应用线性代数、数据统计、时间序列分析、图像处理等高级课程的基本教学工具,
是在读大学生、硕士生、博士生必须掌握的基本技能。MATLAB已经走出实验室,被广泛地用于研究和解决各种具体的工程问
石‘∞=(X‘∞(1),z‘∞(2),z‘们(3)...,X‘∞(n))…(1i
(1)一次AGO(i-AGO)生成序列,以弱化原始序列的随机性和波动性
题。目前MATLAB已发展成为适合多种学科多种工作平台的
功能强大的大型科技应用软件。
MATLAB的基本数据单位是矩阵,其核心也是矩阵,它
可直接进行矩阵的乘积、矩阵的乘方、矩阵的除法、稀疏矩阵等运掣”。在MATLAB语言系统中,几乎所有的操作都是以矩
阵操作为基础,用户可以用类似于数学公式的方法编写程序实
X‘1’=(X0)(1),X‘1’(2),z‘1’(3),..…,X‘1’(,z)),…(2)
七
现算法,大大降低了编程所需的难度并节省了时间。而在GM
(1,1)模型及相关模型的灰色预测过程中,要大量进行数列
式中z‘1’(七)=∑z‘o’(f),(k=1,2,j,.3”,n)
%作1-AGO生成序列X‘1)
和矩阵运算嘲,这晗好使MATLAB派上了用场。将MATLAB
和GM(1,1)模型结合,实现灰色预测算法,恰到好处。
(--)灰色预测模型介绍1.灰色系统
白色系统是指系统内部特征是完全已知的;黑色系统是指系统内部信息完全未知的;而灰色系统是介于白色系统和黑色
x
1(i)=sum(x0(1:i));
end
系统之间的一种系统,灰色系统其内部一部分信息已知,另一
部分信息未知或不确定。
2.灰色预测
灰色预测,是指对系统行为特征值的发展变化进行的预测,对既含有已知信息又含有不确定信息的系统进行的预测,
采用一阶单变量微分方程进行拟合,得到白化方程的GM(I,
1)模型:
芸耐1)(t)-u,式帆u是待定瓶(3)
灰
微
分
方
程
动
态
模
型
为
:
也就是对在一定范围内变化的、与时间序列有关的灰过程进行预测。尽管灰过程中所显示的现象是随机的、杂乱无章的,但
毕竟是有序的、有界的,因此得到的数据集合具备潜在的规律。
z‘1’(尼)=0.5x‘1’(尼)+0.5石‘1’(足一1)
灰色预测是利用这种规律建立灰色模型对灰色系统进行预测。
二、实验说明和实验操作
1.用MATLAB实现GM(1,1)模型算法
∥(尼)+此‘1’(忌)=“
(4)
堆收稿日期:2007—10—12
作者简介:唐丽芳(1974一
),女,湖南洞口人.沧州师专计算机中心教师。
・35・
万方数据
式中z‘1’(七)为x‘1’(之)的紧邻均生成.即
z(1’(七)=0.5x‘1’(七)+O.5x‘1’(尼一1)
%紧邻均生成
for
k--2:n
%紧邻均生成Z
z(k):O.5+xl(k)+0.5‘xl(k一1)j
end
(2)构造矩阵B和数据向量Y:x‘o’与工‘11满足关系Yn=Ba,其中:
工‘o’(2)1
x‘∞(3)
一三2“-m(1)+z∞(2),
1
Y。=
B:
一扣1)(2)at-X(I)(3),
z‘o’(,2)
一12(xm(咒一1)+x(1’(珂),1
三=[兰]=(BTB)-1
BTL
(3)计算系数a和u
戈‘o’(2)一z‘1’(2),1石‘o’(3)
一z‘1’(3),
1
懈
(5)
x‘o’(.n)一Z0)@)】,1
Y。:Bn可用(5)式表示,由此计算出系数口和u%产生数据矩阵B,计算系数a和u
for
i=1:n一1
b(i,1)=一Z(i+1);y(i)=xO(i+1)j
end
b(:,2)=1;
y=y。;
%转置为列向量au=b\y;
%作矩阵除法,计算a
u
(4)累加模型预测结果
・36・
万方数据
x“‘n(k+1):(z(。,(1)一兰)P一破+兰…(6)(+1)=(z‘o’(1)一兰)P一破+兰
…(6)a
a
%计算GM(1,1)模型z(七+1)值
ycl(1)=x0(1);
for
k=l:n
c=x0(1)一au(2)/au(1);
ycl(k+1)=c+exp(-au(1)+k)+au(2)/au(1);
end
(5)还原后的预测结果(作IAGO)
(7)
X(七+1)=X(尼+1)一z(七)
%计算x(尼+1)值,显示预测结果
yc0(1)=x0(1);
fork=l:n
ycO(k+1)=ycl(k+1)-ycl(k);
end
disp(uintl6(ycO(2:1:n+1)));2.检验和判断GM(I,I)模型的精度
为确保所建灰色模型有较高的精度能应用于预测实际,按
灰色理论一般采用三种方法检验判断GM(1,1)模型的精度,它
们是:残差大小检验;关联度检验和后验差检验。通常关联度
要大于0.6,残差P(鼬、方差c越小,模型精度P越好。
(1)残差检验
残差检验:e(k)=x‘o’(七)一X(k)
相对髓£=器
(2)关联度检验
因分辨系数毛是在(0,1)中取定的实数,一般取专=0.5。
关联度是各关联系数£(k)累加后在n维空间的平均值。当分辨系数§=o.5,认为关联度大于0.6时可以接受,即通过关联度检
验,否则关联程度差些。
%计算关联度
maxl=max(abs(e0));
r=l;
for
k=2:n
r=r+0.5*maxl/(abs(e0(k))+0.5+maxl);
disp(。
end
预测不合格‘);
r=r/n;%r表示关联度(3)方差比和小误差概率检验
方差比和小误差概率检验属后验差检验,计算公式分别如下:
end
end
三、预测实例分析
根据河北省某高校1999--2004年教师实际人数,建立GM(1,1)模型,预测2005年教师人数。预测结果为738人.相对误差如表2所示,关联度为o.6084,方差C=0.1209,小
预测误差均值;=丢喜Pcn原始数据均值:{’=丢喜石(o’cD
原始数据标准差:S。=
误差概率P=1.0,模型精度为一级,因此可以用作预测模型。
表2年份
1999200020012002
河北省某高校1999--2004年教师人数及预测表
实际教师数
594614634655676718
609633658683710738
预测教师数相对误差%
}
0。O.65O.05一O.51—1.171.04
预测误差标准差S:=
20032004
方差比:
c=罟
表1
小误差概率:
2005
P=水铲eI<0.6745S1,
模型精度等级
学校在发展过程中,教师相应需要增加。此预测结果为制定学校引进师资、派出进修等规划和政策提供了科学依据。从而消除盲目性,使计划更加趋于科学合理。
四、结束语
用MATLAB实现灰色预测GM(1,1)模型算法,程序简洁、
算法清楚、预测精度高。笔者用本程序在MATLAB6.5环境下
测iK琵-t多组隐含着指数变化规律的原始时间序列,预测结果都较理想。但也有缺陷,须进—步思考和验证。
由P和C的值检验GM(1,1)模型的预测精度,以提供决策依据。精度等级越小越好,精度—级,表示预测具有较高的精度,四级为不通过。模型精度等级由表l所示。
%方差比和小误差概率检验
ifp>0.95&C<0.35
参考文献:
【1】导向科技MATLAB6.0程序设计与实例应用【M】.北京:中
国铁道出版社,2001
【2】邓聚龙.灰色系统理论教程[M】.武汉:华中理工大学出版
社,1992.
disp(’预测精度好’);
elseifp>O.8&c<0.5
disp(。
else
预测合格’);【责任编辑:尤书才】
ifp>0.7&c<0.65
disp(’
e]se
预测勉强合格’);
ToAccomplishGrayForecasting
TANG
GM(1,1)ModelUsing
the
MATLAB
Li—fan91,JIADong—qin92,MENGQing—pen92
(1.CangzhouTeachers’College,Cangzhou0610001,2.HebeiEngineeringCollege,Cangzhou061001)
Abstract:marticlepresentsthealgofithm
Key
words:graysystem;gray
accomplishgrayforecastingGM(1,1)model
byusingtheMATIAB’Ss仃ongmatrixfunction.Acasehasbeenanalyzedtovalidatetheveracityandreliabilityoftheprogram.
to
forecasting;GM(1,1)model;
relevancydegree
万方数据
・37-
第24卷第2期
2008年6月
沧州师范专科学校学报
JournalofCangzhouTeachers’College
No.2V01.24
Jun.2008
用MATLAB实现灰色预测GM(1,1)模型
唐丽芳1,贾冬青2,盂庆鹏2
(1.沧州师范专科学校,河北沧州06100l;2.河北工程技术高等专科学校,河北沧州061001)
摘要:在分析灰色预测模型基本原理的基础上,利用MATLAB强大的矩阵功能,用MATLAB实现灰色预
测GM(1,1)模型算法,并通过实例分析验证了程序的准确性和可靠性。
关键词:灰色系统;灰色预测;GM(1,1)模型;关联度中图分类号:TP391
文献标识码:A
文章编号:1008-4762(2008)02.0035.03
目前使用最广泛的灰色预测模型就是关于数列预测的一个变量、一阶微分的GM(1,1)模型。它是基于随机的原始
一、背景知识和模型介绍
(一)背景知识
MATLAB是MatrixLaboratory的缩写,即为“矩阵实验
时间序列,经按时间累加后所形成的新的时间序列呈现的规律
可用一阶线性微分方程的解来逼近。经证明,经一阶线性微分方程的解逼近所揭示的原始时间序列呈指数变化规律。因此,当原始时间序列隐含着指数变化规律时,灰色模型GM(1,1)的预测是非常成功的。
给定原始序列:
室”。MATLAB是集数学计算、图形处理和程序语言设计于一体的著名数学软件。它对矩阵运算之功能堪称一流,由于使用矩阵描述问题更像数学表达式,所以编写的程序不仅高效,而且易读。在欧美高校,MATLAB已经成为应用线性代数、数据统计、时间序列分析、图像处理等高级课程的基本教学工具,
是在读大学生、硕士生、博士生必须掌握的基本技能。MATLAB已经走出实验室,被广泛地用于研究和解决各种具体的工程问
石‘∞=(X‘∞(1),z‘∞(2),z‘们(3)...,X‘∞(n))…(1i
(1)一次AGO(i-AGO)生成序列,以弱化原始序列的随机性和波动性
题。目前MATLAB已发展成为适合多种学科多种工作平台的
功能强大的大型科技应用软件。
MATLAB的基本数据单位是矩阵,其核心也是矩阵,它
可直接进行矩阵的乘积、矩阵的乘方、矩阵的除法、稀疏矩阵等运掣”。在MATLAB语言系统中,几乎所有的操作都是以矩
阵操作为基础,用户可以用类似于数学公式的方法编写程序实
X‘1’=(X0)(1),X‘1’(2),z‘1’(3),..…,X‘1’(,z)),…(2)
七
现算法,大大降低了编程所需的难度并节省了时间。而在GM
(1,1)模型及相关模型的灰色预测过程中,要大量进行数列
式中z‘1’(七)=∑z‘o’(f),(k=1,2,j,.3”,n)
%作1-AGO生成序列X‘1)
和矩阵运算嘲,这晗好使MATLAB派上了用场。将MATLAB
和GM(1,1)模型结合,实现灰色预测算法,恰到好处。
(--)灰色预测模型介绍1.灰色系统
白色系统是指系统内部特征是完全已知的;黑色系统是指系统内部信息完全未知的;而灰色系统是介于白色系统和黑色
x
1(i)=sum(x0(1:i));
end
系统之间的一种系统,灰色系统其内部一部分信息已知,另一
部分信息未知或不确定。
2.灰色预测
灰色预测,是指对系统行为特征值的发展变化进行的预测,对既含有已知信息又含有不确定信息的系统进行的预测,
采用一阶单变量微分方程进行拟合,得到白化方程的GM(I,
1)模型:
芸耐1)(t)-u,式帆u是待定瓶(3)
灰
微
分
方
程
动
态
模
型
为
:
也就是对在一定范围内变化的、与时间序列有关的灰过程进行预测。尽管灰过程中所显示的现象是随机的、杂乱无章的,但
毕竟是有序的、有界的,因此得到的数据集合具备潜在的规律。
z‘1’(尼)=0.5x‘1’(尼)+0.5石‘1’(足一1)
灰色预测是利用这种规律建立灰色模型对灰色系统进行预测。
二、实验说明和实验操作
1.用MATLAB实现GM(1,1)模型算法
∥(尼)+此‘1’(忌)=“
(4)
堆收稿日期:2007—10—12
作者简介:唐丽芳(1974一
),女,湖南洞口人.沧州师专计算机中心教师。
・35・
万方数据
式中z‘1’(七)为x‘1’(之)的紧邻均生成.即
z(1’(七)=0.5x‘1’(七)+O.5x‘1’(尼一1)
%紧邻均生成
for
k--2:n
%紧邻均生成Z
z(k):O.5+xl(k)+0.5‘xl(k一1)j
end
(2)构造矩阵B和数据向量Y:x‘o’与工‘11满足关系Yn=Ba,其中:
工‘o’(2)1
x‘∞(3)
一三2“-m(1)+z∞(2),
1
Y。=
B:
一扣1)(2)at-X(I)(3),
z‘o’(,2)
一12(xm(咒一1)+x(1’(珂),1
三=[兰]=(BTB)-1
BTL
(3)计算系数a和u
戈‘o’(2)一z‘1’(2),1石‘o’(3)
一z‘1’(3),
1
懈
(5)
x‘o’(.n)一Z0)@)】,1
Y。:Bn可用(5)式表示,由此计算出系数口和u%产生数据矩阵B,计算系数a和u
for
i=1:n一1
b(i,1)=一Z(i+1);y(i)=xO(i+1)j
end
b(:,2)=1;
y=y。;
%转置为列向量au=b\y;
%作矩阵除法,计算a
u
(4)累加模型预测结果
・36・
万方数据
x“‘n(k+1):(z(。,(1)一兰)P一破+兰…(6)(+1)=(z‘o’(1)一兰)P一破+兰
…(6)a
a
%计算GM(1,1)模型z(七+1)值
ycl(1)=x0(1);
for
k=l:n
c=x0(1)一au(2)/au(1);
ycl(k+1)=c+exp(-au(1)+k)+au(2)/au(1);
end
(5)还原后的预测结果(作IAGO)
(7)
X(七+1)=X(尼+1)一z(七)
%计算x(尼+1)值,显示预测结果
yc0(1)=x0(1);
fork=l:n
ycO(k+1)=ycl(k+1)-ycl(k);
end
disp(uintl6(ycO(2:1:n+1)));2.检验和判断GM(I,I)模型的精度
为确保所建灰色模型有较高的精度能应用于预测实际,按
灰色理论一般采用三种方法检验判断GM(1,1)模型的精度,它
们是:残差大小检验;关联度检验和后验差检验。通常关联度
要大于0.6,残差P(鼬、方差c越小,模型精度P越好。
(1)残差检验
残差检验:e(k)=x‘o’(七)一X(k)
相对髓£=器
(2)关联度检验
因分辨系数毛是在(0,1)中取定的实数,一般取专=0.5。
关联度是各关联系数£(k)累加后在n维空间的平均值。当分辨系数§=o.5,认为关联度大于0.6时可以接受,即通过关联度检
验,否则关联程度差些。
%计算关联度
maxl=max(abs(e0));
r=l;
for
k=2:n
r=r+0.5*maxl/(abs(e0(k))+0.5+maxl);
disp(。
end
预测不合格‘);
r=r/n;%r表示关联度(3)方差比和小误差概率检验
方差比和小误差概率检验属后验差检验,计算公式分别如下:
end
end
三、预测实例分析
根据河北省某高校1999--2004年教师实际人数,建立GM(1,1)模型,预测2005年教师人数。预测结果为738人.相对误差如表2所示,关联度为o.6084,方差C=0.1209,小
预测误差均值;=丢喜Pcn原始数据均值:{’=丢喜石(o’cD
原始数据标准差:S。=
误差概率P=1.0,模型精度为一级,因此可以用作预测模型。
表2年份
1999200020012002
河北省某高校1999--2004年教师人数及预测表
实际教师数
594614634655676718
609633658683710738
预测教师数相对误差%
}
0。O.65O.05一O.51—1.171.04
预测误差标准差S:=
20032004
方差比:
c=罟
表1
小误差概率:
2005
P=水铲eI<0.6745S1,
模型精度等级
学校在发展过程中,教师相应需要增加。此预测结果为制定学校引进师资、派出进修等规划和政策提供了科学依据。从而消除盲目性,使计划更加趋于科学合理。
四、结束语
用MATLAB实现灰色预测GM(1,1)模型算法,程序简洁、
算法清楚、预测精度高。笔者用本程序在MATLAB6.5环境下
测iK琵-t多组隐含着指数变化规律的原始时间序列,预测结果都较理想。但也有缺陷,须进—步思考和验证。
由P和C的值检验GM(1,1)模型的预测精度,以提供决策依据。精度等级越小越好,精度—级,表示预测具有较高的精度,四级为不通过。模型精度等级由表l所示。
%方差比和小误差概率检验
ifp>0.95&C<0.35
参考文献:
【1】导向科技MATLAB6.0程序设计与实例应用【M】.北京:中
国铁道出版社,2001
【2】邓聚龙.灰色系统理论教程[M】.武汉:华中理工大学出版
社,1992.
disp(’预测精度好’);
elseifp>O.8&c<0.5
disp(。
else
预测合格’);【责任编辑:尤书才】
ifp>0.7&c<0.65
disp(’
e]se
预测勉强合格’);
ToAccomplishGrayForecasting
TANG
GM(1,1)ModelUsing
the
MATLAB
Li—fan91,JIADong—qin92,MENGQing—pen92
(1.CangzhouTeachers’College,Cangzhou0610001,2.HebeiEngineeringCollege,Cangzhou061001)
Abstract:marticlepresentsthealgofithm
Key
words:graysystem;gray
accomplishgrayforecastingGM(1,1)model
byusingtheMATIAB’Ss仃ongmatrixfunction.Acasehasbeenanalyzedtovalidatetheveracityandreliabilityoftheprogram.
to
forecasting;GM(1,1)model;
relevancydegree
万方数据
・37-