2021年考研季已经来临,也许我们最关心的是下一年考研的报名人数,作者用自己所学的知识做一次大胆的预测,学术不严谨的地方还请批评指正,好奇想知道结果的同学,请直接跳至文末,看结果。
本文选取2010~2019年每年的研究生报名人数,报考人数单位为/万人,数据来源于网络。
做出散点图,我们看到,从2010~2013年有明显的增长趋势,2013~2015年呈下降趋势,2015年至今又持续上升。
做灰色预测,预测未来10年的研究生报考人数,按照预测模型的求解步骤进行:
- 对原始数据进行累加;
- 构造累加矩阵B与常数向量;
- 求解灰参数;
- 将参数带入预测模型进行数据预测;
程序代码如下:
clear syms a b;
c=[a b]';
A=[141,151,166,176,172,165,177,201,238,290];%2010至2019年研究生报考人数
B=cumsum(A); % 原始数据累加
n=length(A);
for i=1:(n-1)
C(i)=(B(i)+B(i+1))/2; % 生成累加矩阵
end % 计算待定参数的值
D=A;
D(1)=[];
D=D';
E=[-C;ones(1,n-1)];
c=inv(E*E')*E*D;
c=c';
a=c(1);
b=c(2); % 预测后续数据
F=[];
F(1)=A(1);
for i=2:(n+10)
F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a ;
end G=[];
G(1)=A(1);
for i=2:(n+10)
G(i)=F(i)-F(i-1); %得到预测出来的数据
end
t1=2010:2019;
t2=2010:2029;
G
plot(t1,A,'k*', 'LineWidth',1)
hold on
plot(t2,G,'b', 'LineWidth',1)
xlabel('年份', 'fontsize',10)
ylabel('研究生报考人数','fontsize',10)
set(gca, 'LineWidth',1)
得出预测值如下表所示:
从拟合的图像上,未来的研究生报考人数是增长的,这符合实际,但模型不能正确表达预测值,与真实值有很大的误差,采用线性拟合进行预测。
我们得出拟合曲线如下图所示:
用拟合工具箱重新预测,得出4次拟合的模型最好,R2=0.9907,接近于1,模型显著,用拟合出来的回归方程,来预测2020年研究生报考人数。
Linear model Poly4:
f(x) = p1*x^4 + p2*x^3 + p3*x^2 + p4*x + p5
Coefficients (with 95% confidence bounds):
p1 = 0.01253 (-0.1037, 0.1288)
p2 = -100.2 (-1037, 836.5)
p3 = 3.005e+05 (-2.53e+06, 3.131e+06)
p4 = -4.005e+08 (-4.202e+09, 3.401e+09)
p5 = 2.002e+11 (-1.714e+12, 2.114e+12)
Goodness of fit:
SSE: 168.4
R-square: 0.9907
Adjusted R-square: 0.9833
RMSE: 5.803
得出2020年研究生报名人数为:
polyval(p,2020)
ans =376.3321
是的,你没有看错,用4次拟合出来的模型,得出2020年研究生报名人数为376.3321万人,重要的话说三遍,2020年研究生报名人数为:376.3321万人,咋么样?是不是有点慌了,那抓紧去看书吧!不要妄自菲薄,加油,少年