基于最小二乘法的人口增长模型拟合

您所在的位置:网站首页 如何利用最小二乘法求拟合直线并计算非线性误差 基于最小二乘法的人口增长模型拟合

基于最小二乘法的人口增长模型拟合

2024-07-01 01:24| 来源: 网络整理| 查看: 265

基于最小二乘法的人口增长模型拟合 一.问题描述二.问题分析三.实验过程四.实验结果分析

一.问题描述

   全国第七次人口普查正在进行中,为了更好的了解我国人口总数,判断人口数量变化规律,为相关政策的制定与执行提供理论依据。需要一定的数学模型来对人口数量进行估计和预测,需要选择合适的数学方法来实现上述目标。

二.问题分析

  为了对2020年全国总人口有一个较为准确的估计,需要查找2020年之前若干年的全国总人口数据,依据已有的统计数据来估计未知的数据。经过比较与选择,本课题采用最小二乘法的指数增长模型来对数据进行拟合来,进而完成对2020年的总人口进行预测的目标。

三.实验过程

  查阅相关资料可搜集到2000年至2019年我国的人口数据资料如下表所示:

       表1 人口总数统计表

年份200020012002200320042005200620072008人口12.6512.7612.8412.9212.9913.0713.1413.2113.28年份200920102011201220132014201520162017人口13.3413.4113.4713.5413.6113.6713.7413.8213.90年份20182019人口13.9514.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∑n​ei2​=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 年人口数量不会一直呈线性变化,故模型二更适合我国目前人口变化的模式。虽然数模模型的预测不一定准确,因为要受到数据来源的影响,本设计所搜集到的数据来源不一定非常精准,如若能够保证数据来源的稳定性,那么预测结果有一定的参考价值,可为相关部门参考和借鉴。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3