灰色模型预测GM(1,1) 就业率 升学率
Posted studyer_domi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了灰色模型预测GM(1,1) 就业率 升学率相关的知识,希望对你有一定的参考价值。
1、内容简介
灰色模型预测GM(1,1) 就业率 升学率
319-可以交流、咨询、答疑
2、内容说明
灰色系统理论是以“部分信息已知、部分信息未知”的“小样本”、“贫信息”不确定性系统为研究对象,用已知的确定的数据去预测未来未知的数据。
灰色预测模型中最基本的是一次拟合参数模型,即GM(1,1)它是通过对原始数据进行累加生成后,得到规律性较强的序列,再用指数曲线去拟合得到预测值,即累加之后属于指数增长型的数据适合用灰色预测。
灰色系统,就是介于白色和黑色系统之间,一部分信息是已知的,另一部分信息是未知的,系统内各因素间有不确定的关系。
例题:城市1986到1992年道路噪声平均声级数据见下表,请预测下一年的数据。
•某城市交通噪声数据/dB(A)
灰色系统的特点:
- 数据量太少,无法用回归或神经网络预测
- 年份和噪声的数据是已知的
- 年份和噪声之间存在内在联系
- 具体函数关系未知
- 短期预测(只预测下一年)
问题中的“年份”和“噪声值”就是一种灰色系统。当题目中的数据量少、无明显规律时,一般可以使用灰色预测模型。
3、仿真分析
%% 就业率(%)
y=[ 88.75 94.56 92.21 92.94 95.81]; %输入数据
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(BT*B)*BT*YN;
a=A(1);
u=A(2);
t=u/a;
t_test=input('请输入需要预测年数N:');
i=1:t_test+n;
yys(i+1)=(y(1)-t).*exp(-a.*i)+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);
figure
plot(x,y,'^r',xs,yn,'*-b');
legend('真实就业率','预测就业率');
ylabel('就业率(%)');xlabel('时间序列');
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))]);
请输入需要预测年数N:3
百分绝对误差为:1.3039%
预测值为: 95.0178 95.4774 95.9393
4、参考论文
略
以上是关于灰色模型预测GM(1,1) 就业率 升学率的主要内容,如果未能解决你的问题,请参考以下文章
python 实现 灰色预测 GM(1,1)模型 灰色系统 预测 灰色预测公式推导