概述
目录
一、灰色预测概念
二、GM(1,1)模型
模型的使用条件
1、建立模型的数据不应该少于4组
2、已知数据的检验处理
三、回归分析
四、灰色预测模型的建立
五、模型的检验
残差检验
级比偏差值检验
六、2023考研人数预测
七、matlab代码
一、灰色预测概念
1、灰色预测法是一种对含有不确定因素且具有少量数据的系统进行预测的方法。
2、灰色系统。白色系统是指,在一个系统中,所有内部特征是全部已知的。而黑色系统与之相反,是指在一个系统中,所有内部特征是全部未知的,只能根据外界的情况进行预测。灰色系统是介于白色系统和黑色系统之间的一种系统。在已知部分内容的条件下进行预测。
3、灰色预测就是对含有已知和未知信息的系统进行预测,寻找数据变动规律,生成有较强规矩性的序列,再建立相应的微分方程模型,来对事物发展进行预测。
二、GM(1,1)模型
模型的使用条件
1、建立模型的数据不应该少于4组
虽然灰色预测模型是主要面对少量数据的预测,但是也不应该4组,从而确保计算数据的准确性。
2、已知数据的检验处理
设原始数据为:
计算数列级比:
所有数据应在以下范围内,才可以建立GM(1,1)模型进行灰色预测
如果数据不在范围内,可用平移法调整数据:
调整之后使得数据在所规定范围内。
三、回归分析
回归分析是建立灰色预测模型必要的内容,便于读者理解,这里拿出一个标题,具体说明回归分析在灰色预测模型的应用及其原理。(使用处已经在下文刷黄提醒读者)
设为原始数列
一次累加生成数列:
其中,
定义的灰导数为:
设为数列的邻值生成数列:
其中,一般取0.5,为白化背景值,a为发展系数,b为灰作用量
定义GM(1,1)的灰微分方程为
从而可得;
利用矩阵向量表示:
,,
由此可得矩阵表达式:Y=Bu
利用最小二乘法求得a,b估计值:
对应GM(1,1)的灰微分方程,如果灰导数连续,可将其视为t的函数,构造白化微分方程:
四、灰色预测模型的建立
设满足检验的数据为:
建立GM(1,1)模型:
,(该式建立已在回归分析中说明)
使用回归分析求得a,b的值得到白化模型:
于是可以得到预测值:
从而可得:
由此,我们可以通过增加k的值,进行后面数据的预测。
五、模型的检验
残差检验
残差检验公式:
如果对所有的,则认为达到比较高的要求,若对于,则说明数据达到一般要求。
级比偏差值检验
级比偏差值计算公式:
如果对所有的,则认为达到比较高的要求,若对于,则说明数据达到一般要求。
六、2023考研人数预测
初始数据:
将2015-2022年报考人数数据带入matlab代码可得:
由matlab运行截图可知
预测值显示出从2015-2023灰色模型预测报考人数结果,从而可以得到2023预测考研报考人数为530.6万
通过残差检验和级比偏差检验可知,均小于0.1,说明模型计算结果可靠性较高,模型成立。
将2015-2022年录取人数数据带入matlab代码可得:
由matlab运行截图可知
预测值显示出从2015-2023灰色模型预测录取人数结果,从而可以得到2023预测考研录取人数为129.05万人
通过残差检验和级比偏差检验可知,中,仅有有一个值大于0.1,小于0.2,其他值均小于0.1,说明模型计算结果可靠性较高,模型成立。
从而我们可以计算出预测2023年考研录取率为:
七、matlab代码
clear
y=[2015,2016,2017,2018,2019,2020,2021,2022];
% x=[164.9,177,201,238,290,341,377,457];
%2015-2022年考研报名人数
x=[57.06,58.98,72.22,76.25,81.13,99.05,111.04,110.7];
%2015-2022年录取人数
[m,n]=size(x);
%数据检验
for i=2:n
PI(i)=x(i-1)/x(i);
end
J=length(find(PI>exp(-2/(n+1))&PI<exp(2/(n+1))));
if J==(n-1)
%共n-1组数据
disp('数据符合要求');
end
x1=ones(1,n);
x1(1)=x(1);
for i=2:n
%求x1的值
x1(i)=x1(i-1)+x(i);
end
%求邻值矩阵,系数α取0.5,k取2...n
z1=ones(1,n-1);
for k=2:n
z1(k-1)=0.5*x1(k)+0.5*x1(k-1);
end
P=ones(2,1);
%用来存放a,b的值
Y=x(1,2:n)';
B=[-z1',ones(n-1,1)];
%n-1 X 2维的矩阵
P=(inv(B'*B))*B'*Y
for k=1:n-1
x_1(k+1)=(x(1)-P(2)/P(1))*exp(-P(1)*k)+P(2)/P(1);
end
x_(1)=x(1);
for k=1:n+1
%&&&&&预测数据n后加几代表往后预测几年
x_(k+1)=(x(1)-P(2)/P(1))*(1-exp(P(1)))*exp(-(P(1)*k)) ;
%打印预测数据
end
disp('预测值');
x_(1:n+1)
%&&&&&预测数据n后加几代表往后预测几年,这里x数据截至到2022年,n+1为预测2023年报考人数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%计算残差 e(k)
disp('计算残差')
for i=2:n
e(i)=(x(i)-x_(i))/x(i);
end
e
%打印所有残差
disp('级比偏差值检验');
%用r表示
%计算入(X),用T表示
for i=2:n
T(i)=x(i-1)/x(i);
end
for k=2:n
r(k)=1-((1-0.5*P(1))/(1+0.5*P(1)))*T(k);
end
r(1:n)
最后
以上就是深情哑铃为你收集整理的灰色预测法及2023考研报考人数预测(附matlab代码)一、灰色预测概念二、GM(1,1)模型三、回归分析四、灰色预测模型的建立五、模型的检验六、2023考研人数预测七、matlab代码的全部内容,希望文章能够帮你解决灰色预测法及2023考研报考人数预测(附matlab代码)一、灰色预测概念二、GM(1,1)模型三、回归分析四、灰色预测模型的建立五、模型的检验六、2023考研人数预测七、matlab代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复