全国第七次人口普查正在进行中,为了更好的了解我国人口总数,判断人口数量变化规律,为相关政策的制定与执行提供理论依据。需要一定的数学模型来对人口数量进行估计和预测,需要选择合适的数学方法来实现上述目标。
为了对2020年全国总人口有一个较为准确的估计,需要查找2020年之前若干年的全国总人口数据,依据已有的统计数据来估计未知的数据。经过比较与选择,本课题采用最小二乘法的指数增长模型来对数据进行拟合来,进而完成对2020年的总人口进行预测的目标。
查阅相关资料可搜集到2000年至2019年我国的人口数据资料如下表所示:
表1 人口总数统计表
年份 | 2000 | 2001 | 2002 | 2003 | 2004 | 2005 | 2006 | 2007 | 2008 |
---|---|---|---|---|---|---|---|---|---|
人口 | 12.65 | 12.76 | 12.84 | 12.92 | 12.99 | 13.07 | 13.14 | 13.21 | 13.28 |
年份 | 2009 | 2010 | 2011 | 2012 | 2013 | 2014 | 2015 | 2016 | 2017 |
人口 | 13.34 | 13.41 | 13.47 | 13.54 | 13.61 | 13.67 | 13.74 | 13.82 | 13.90 |
年份 | 2018 | 2019 | |||||||
人口 | 13.95 | 14.00 |
根据已有资料,现对统计数据进行建模,可采用线性增长模型和指数增长模型。现比较两者效果,根据结果选出最合适的模型。
(1) 线性增长模型
观测值的模型: y i = a + b x i + e i , i = 1 , 2 , … n y_{i}=a+b x_{i}+e_{i}, \quad i=1,2, \ldots n yi=a+bxi+ei,i=1,2,…n
线性模型:y=a+bx
拟合精度: Q = ∑ i = 1 n e i 2 = ∑ i = 1 n ( y i − a − b x i ) 2 Q=\sum_{i=1}^{n} e_{i}^{2}=\sum_{i=1}^{n}\left(y_{i}-a-b x_{i}\right)^{2} Q=i=1∑nei2=i=1∑n(yi−a−bxi)2
多项式拟合函数:(程序采用MATLAB实现)
function p=mafit(x,y,m)
format short;
A=zeros(m+1,m+1);
for i=0:m
for j=0:m
A(i+1,j+1)=sum(x.^(i+j));
end
b(i+1)=sum(x.^i.*y);
end
a=A\b';
p=fliplr(a');
end
输入:(拖动进度条往右划可查看完整)
x=[2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019];
y=[12.65 12.76 12.84 12.92 12.99 13.07 13.14 13.21 13.28 13.34 13.41 13.47 13.54 13.61 13.67 13.74 13.82 13.90 13.95 14.00];
p=mafit(x,y,1)
输出:
p =
0.0697 -126.7102
所以线性模型为y=0.0697*x-126.7102
预测2020年人口数据:
输入:x=2020;
y=0.0697*x-126.7102;
输出:y =
14.0838
(2) 指数增长模型(用简单的线性最小二乘法)
输入:
x=[2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019];
y=[12.65 12.76 12.84 12.92 12.99 13.07 13.14 13.21 13.28 13.34 13.41 13.47 13.54 13.61 13.67 13.74 13.82 13.90 13.95 14.00];
p=mafit(x,log(y),1)
输出:
p =
0.0052 -7.9030
所以指数模型:y=e^(-7.9030+0.0052x)
预测2020年人口数量:
输入:x=2020;
y=exp(-7.9030+0.0052*x)
输出:y =
13.4772
拟合图形程序:
x=[2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019];
y=[12.65 12.76 12.84 12.92 12.99 13.07 13.14 13.21 13.28 13.34 13.41 13.47 13.54 13.61 13.67 13.74 13.82 13.90 13.95 14.00];
a=mafit(x,y,1);
x1=[2000:1:2019];
y1=a(2)+a(1)*x1;
b=mafit(x,log(y),1);
y2=exp(b(2))*exp(b(1)*x1);
plot(x,y,'*')
hold on
plot(x1,y1,'--r')
hold on
plot(x1,y2,'-k')
legend('原曲线','曲线一','曲线二')
输出结果如下图所示:
图1 matlab输出结果曲线图
(注:曲线一为线性模型,曲线二为指数模型)
由于我国有关人口控制的相关政策的实行,使得人口增长率逐年下降, 到2020
年人口数量不会一直呈线性变化,故模型二更适合我国目前人口变化的模式。虽然数模模型的预测不一定准确,因为要受到数据来源的影响,本设计所搜集到的数据来源不一定非常精准,如若能够保证数据来源的稳定性,那么预测结果有一定的参考价值,可为相关部门参考和借鉴。