进行灰色预测,首先要鉴别系统因素之间发展趋势的相异程度,即进行关联分析,再对原始数据进行生成处理来寻找系统变动的规律,生成有较强规律性的数据序列,然后建立相应的微分方程模型来预测事物未来发展趋势的状况。
在建立灰色预测模型之前,需先对原始时间序列进行数据处理是为了弱化原始时间序列的随机性。灰色系统常用的数据处理方式有累加和累减两种。
分享兴趣,传播快乐,增长见闻,留下美好!亲爱的您,这里是LearningYard学苑。
今天小编为大家带来《快速上手灰色系统理论GM(1,1)模型》,一起来看看吧!
快速上手灰色系统理论GM(1,1)模型
01:53来自LearningYard学苑
多图预警!建议连接WIFI阅读!
1研究背景
灰色系统理论是由我国著名学者邓聚龙教授创立,是中国原创学科,是确定性理论和系统科学领域的重要学科。我们称部分信息已知,部分信息不明确的系统为灰色系统,通过对少量信息的累加、累减等计算处理,获取有价值的部分,实现对灰色系统变化趋势的预测,或者对当前系统状况的准确监控。如今灰色系统理论已经进过了将近40年的发展完善,成果丰硕,在理论体系和模型框架方面已经比较完善,参数优化和计算方法等方面都有了相当大的改进,已形成包含了系统分析、预测、优化等技术体系,在许多学科领域得到了广泛的应用。
GM(1,1)模型作为灰色系统理论重要组成部分,适合于小样本数据的预测,在样本缺乏导致信息不足的情况下能充分利用所观察到的决策信息,给出较高精度的预测结果。GM(1,1)模型的思想是对最开始的数据进行一次累加生成数据序列,新的数据序列相应的曲线可以应用特定曲线无限逼近,把逼近曲线作为基础模型,将预测值做几次滚动累加还原,以预测出发展趋势。
2基础概念
(1)灰色系统
灰色系统介于黑色系统与白色系统之间,称部分信息已知、另部分信息未知,且内部各因素间有不确定的关系的系统为灰色系统。
(2)灰色预测
灰色预测是通过少量的、不完全的信息,建立数学模型做出预测的一种预测方法。该方法基于客观事物的过去和现在的发展规律,对未来的发展趋势和状况进行描述和分析,并形成科学的假设和判断。其中GM(1,1)模型就是灰色预测中的强力工具之一。
(3)GM(1,1)模型
该模型中,G表示Grey,M表示Model,括号中第一个1代表一阶微分方程,第二个1代表微分方程有一个变量。同理,灰色预测理论中GM(1,2)表示有两个变量的一阶微分方程灰色模型。
3基于GM(1,1)模型的灰色预测步骤
令不完全信息非负序列为X(0),生成1-AGO(1-Accumulating Generation Operational)序列X(1)。1-AGO序列类似帕累托图中的累加折线。
利用高数知识构建GM(1,1)模型的灰色微分方程,其中a为发展系数,b为灰色作用量。通过公式得到均值形式的GM(1,1)模型Z(1)。
构建灰色预测矩阵:
通过最小二乘法构建函数,并求出估计值:
GM(1,1)模型的白化微分方程为:
得到在公式(1)条件下时间响应函数,并对公式(7)进行计算,得到模拟预测序列。
英语学习
Grey system theory was founded by the famous Chinese scholar Professor Deng Julong It is an original subject in China and an important subject in the field of deterministic theory and systems science We call a system with some known information and some unclear information as a gray system By accumulating and subtracting a small amount of information, we can obtain valuable parts to predict the changing trend of the gray system or the current system status Accurate monitoring Now the grey system theory has been developed and perfected for nearly 40 years, with fruitful results It has been relatively complete in terms of theoretical system and model framework, and considerable improvements have been made in parameter optimization and calculation methods, and it has been formed to include system analysis Technical systems such as, forecasting, and optimization have been widely used in many disciplines As an important part of gray system theory, GM(1,1) model is suitable for the prediction of small sample data It can make full use of the observed decision information when the lack of samples leads to insufficient information, and give high-precision prediction results The idea of the GM(1,1) model is to accumulate the initial data once to generate a data sequence The corresponding curve of the new data sequence can be approximated infinitely by a specific curve The approximate curve is used as the basic model and the predicted value is rolled several times Accumulate reduction to predict the development trend
本期的分享就到这里,如果您对今天的文章有独特的想法,欢迎给我们留言,让我们相约明天,祝您今天过得开心快乐!
本文由LearningYard学苑原创,仅代表作者个人观点,如有侵权请联系删除。
翻译参考来源:Google翻译。
内容参考来源:
[1] Liu S , Yin C , Cao D Weapon equipment management cost prediction based on forgetting factor recursive GM (1,1) model[J] Grey Systems Theory & Application, 2019, 10(1):38-45
试试这个程序
clear
x0=[711 724 724 721 714 720 716];%举个例子
n=length(x0);
lamda=x0(1:n-1)/x0(2:n)
range=minmax(lamda)
x1=cumsum(x0)
for i=2:n
z(i)=05(x1(i)+x1(i-1));
end
B=[-z(2:n)',ones(n-1,1)];
Y=x0(2:n)';
u=B\Y
x=dsolve('Dx+ax=b','x(0)=x0');
x=subs(x,{'a','b','x0'},{u(1),u(2),x1(1)});
yuce1=subs(x,'t',[0:n-1]);
digits(6),y=vpa(x) %为提高预测精度,先计算预测值,再显示微分方程的解
yuce=[x0(1),diff(yuce1)]
epsilon=x0-yuce %计算残差
delta=abs(epsilon/x0) %计算相对误差
rho=1-(1-05u(1))/(1+05u(1))lamda %计算级比偏差值
最后几行改两个地方就可以了: for i=1:n+11 %计算数据估计值的累加数列,如改为n+1为n+m可预测后m-1个值 ago(i,:)=(x(1,:)-alpha(2,:)/alpha(1,:))exp(-alpha(1,:)(i-1))+alpha(2,:)/alpha(1,:); end var(1,:)=ago(1,:) for i=1:n+10%如改n为n+m-1,可预测后m-1个值 var(i+1,:)=ago(i+1,:)-ago(i,:); %估计值的累加数列的还原,并计算出下一预测值 end
clc
clear all
% 本程序主要用来计算根据灰色理论建立的模型的预测值。
% 应用的数学模型是 GM(1,1)。
% 原始数据的处理方法是一次累加法。
y=[166287 21634 196535 247248 290066 303493 27555 3207 3462];%已知数据
n=length(y);
yy=ones(n,1);
yy(1)=y(1);
for i=2:n
yy(i)=yy(i-1)+y(i);
end
B=ones(n-1,2);
for i=1:(n-1)
B(i,1)=-(yy(i)+yy(i+1))/2;
B(i,2)=1;
end
BT=B';
for j=1:n-1
YN(j)=y(j+1);
end
YN=YN';
A=inv(BTB)BTYN;
a=A(1);
u=A(2);
t=u/a;
t_test=4; %需要预测个数
i=1:t_test+n;
yys(i+1)=(y(1)-t)exp(-ai)+t;
yys(1)=y(1);
for j=n+t_test:-1:2
ys(j)=yys(j)-yys(j-1);
end
x=1:n;
xs=2:n+t_test;
yn=ys(2:n+t_test);
plot(x,y,'^r',xs,yn,'-b');
det=0;
for i=2:n
det=det+abs(yn(i)-y(i));
end
det=det/(n-1);
disp(['百分绝对误差为:',num2str(det),'%']);
disp(['预测值为: ',num2str(ys(n+1:n+t_test))]);
输出结果:
百分绝对误差为:2283113%
预测值为: 3710152 39782142 42656442 45738413
以上就是关于进行灰色预测要经过哪些步骤为什么要先对数据进行处理全部的内容,包括:进行灰色预测要经过哪些步骤为什么要先对数据进行处理、用可编程科学计算器,怎样编写灰色预测模型GM(1,1)程序、关于matlab的灰色预测,为什么每次运行都说我输入的向量格式有误等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)