数学建模社区-数学中国

标题: 数模竞赛-人口问题 [打印本页]

作者: 杨利霞    时间: 2019-4-12 16:29
标题: 数模竞赛-人口问题
数模竞赛-人口问题
: |. S$ J7 Y* b3 ^: Q8 h5 w' {' p- p) d6 ^# Q* [$ c. O" ?  E
学校最近的数学建模比赛,刚好组内同学也有想参加的,就一起报名了9 s# `2 q5 B8 L* {2 n
/ s7 S; R% _& W8 o+ Z
人口问题/ O; @3 d: O  C6 X2 W' G8 H* o

$ T  C6 S+ X7 ~+ ^3 U0 o在全面两孩政策正式实施之前,卫计委牵头进行了全面两孩政策影响生育的预测研究。 9 U7 _7 K+ u7 A" K
根据最后完成的《实施全面两孩政策人口变动测算总报告》, 3 Q) @, s) v* v/ i8 N
2016年放开全面两孩,2017到2021年5年间增加两孩出生数将为1719.5万人,平均每年增加340万左右。
2 A# Z$ o4 M- F+ f+ H& O) a其中,2017年出生人口总量将达到2109.9万人,2018年达到峰值,为2188.6万人。 0 J1 T6 ^7 U0 H3 ?% n
国家统计局2018年01月18日公布数据显示,去年全国出生人口数量和人口出生率双双下降。 9 [* b; y8 \- Y3 c
2017年全年共出生人口1723万人,比预测数据“少了387万人”,低于2016年的1786万人。
+ e0 C8 D7 q6 A5 t- O, n3 I9 H人口出生率也同样出现了明显下降,去年全国人口出生率为12.43‰,2016年这一数据为12.95‰。
% y; P, S( K% K  x5 k! S由于与之前预测相差甚远,这个数据甚至令不少人口学界人士感到意外。& z7 `. a" Q4 O) J3 j
$ d, u5 d5 y7 p  s* N7 L1 j
建立数学模型分析下列问题:
4 a3 h& A* o3 z! L3 v
6 f9 c8 M: S; Z8 j/ S: A1 v(1) 在现有政策下预测未来人口的变化趋势。 , T; @, s3 D+ g+ J: Y1 v
(2) 如何才可达到《实施全面两孩政策人口变动测算总报告》的预测效果。 . F- K6 N# N+ M- q- P. _$ o7 \; }
(3) 分析人口变化的主要因素,建立人口增长与这些因素间的关系。 % e, s1 j+ P0 A6 }- D$ z) {" w
(4) 依据你的研究给政府相关部门写一份800字左右的报告。
3 i1 I0 z8 e* H" s. F5 H( N
" C( r5 q* ]# K1 S$ F7 |; A拿到手感觉还不算难吧,网上应该有很多这样的分析,但是网上大部分都是时间有点久的,这个是考虑全面开放二胎后得人口变化,主要还是用近年的数据,这样得分会高一些。
1 c* ?' s7 C" v$ Z) i* Y% t
* f- M4 {3 e' b' e7 x人口预测模型- \  }2 i  x, @9 A) W. q, Y7 n
; R5 a1 o9 {- x5 ]" l3 z+ D8 o4 e
先说我查到的几个模型吧,指数模型,灰度预测模型(这个网上被吐槽得很水),logistic模型,Leslie矩阵,大概就这几个了,然后论文里面用得是灰度预测和logistic模型,Leslie矩阵我很想加进去,因为它用当前人口年龄结构来预测未来的人口,感觉很切合题目。但是没找到合适的,就不了了之了。
# e! I" A$ j4 a5 t4 g7 j3 k3 ?
) z  I8 {8 o* |" C  C. \: J灰度预测  y4 j$ E7 I" K* ^! k; Q: b0 J

3 U) E  i. t' m2 P9 V4 P先说公式推导
( e" w8 Z! Z$ F9 Z$ ~- n! ?mathType的公式好像无法在makedown上面显示,我就截图吧
; f$ }2 C" y# @0 A% k1 R8 o' \

- r5 u" K. m1 T/ D
- t, Q" f7 b  H+ P+ [7 C' e6 v7 a0 E: d. I& ^! o
上面就是公式的推导,下面是matlab的代码
. A5 }) Q/ \& `& F
7 D! h) E* r- |) t% ^! m1 [clc,clear;  : q0 B" n# f* c, x  f
syms a b;  
+ @1 w2 n* j/ o( E- h- xc=[a b]';  
2 q* l* B( f) L, j. X%2012-2017" P; {- ~& x3 ?
A=[ 135404   136072   136782   137462   138271   139008];
" v  a# G5 f! P9 |7 g( ^3 n0 B9 WB=cumsum(A);  %原始数据累加  
' f: Z$ p8 J4 D" Yn=length(A);  
' N, a( N. p/ b6 x- a( Nfor i=1n-1)  / Y- q# ]6 [" J/ h% V7 }7 X/ l
    C(i)=(B(i)+B(i+1))/2; %生成累加矩阵  / B8 G2 e# I0 L! L3 c
end  
  a, `3 T% I! V4 d* _8 G7 V%计算待定参数的值  + J1 u' h. W% ^- \
D=A;D(1)=[];  
1 a; Y% R( B9 a9 ]& X1 ^' t# G* tD=D';  
3 F) ], D# D+ j7 _) S( pE=[-C;ones(1,n-1)];  - |( \9 ?* V; A5 i6 [/ u) V  @: [
c=inv(E*E')*E*D;  3 J1 w* {8 |8 e$ m$ p% k4 H
c=c';  
2 }$ j) ^2 m" G) v" t7 Aa=c(1);b=c(2);  7 T, m' K% c" s8 G
%预测后续数据  
; N+ D8 _, X5 D& k$ h1 VF=[];F(1)=A(1);  
$ z7 Z! I' o0 U0 |$ ^. D4 Jfor i=2n+5)  %只推测后5个数据,可以从此修改  2 O+ \8 f  E' ~% d
    F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;  . b5 U+ f& p( I2 R
end  
/ Q) F0 V3 z4 |  P$ jG=[];G(1)=A(1);  , f& Z9 c, K2 a2 J
for i=2n+5)  %只推测后5个数据,可以从此修改  ( X! ?. L1 }' f. x
    G(i)=F(i)-F(i-1);  %得到预测出来的数据  . |5 e5 K0 }% B# U- F: {0 {
end  
7 G2 i" L8 k" Zt1=2012:2017;  
/ F; s, @4 h1 p4 [4 Jt2=2012:2022;  %多10组数据  
' l7 h# C7 e8 cG
: f# H( i6 ?( e5 P0 Lh=plot(t1,A,'o',t2,G,'-'); %原始数据与预测数据的比较  1 w( |' |2 I4 y  M0 \, o
set(h,'LineWidth',1.5);4 Z% b; N: o  Z3 v# D1 m

  j5 O4 [2 U& Z- {/ C这是Excel里面的人口数据 1 B& p' u3 [7 [1 P  W

2 ?& J: z1 \! B' a% m' n- n最后得出的结论,感觉还是挺靠谱的。
  ~$ M( z5 K5 n# p8 B* w& ^# z8 u  b* T! _' m* t8 m

  ~( p( \. a5 O+ ]# W/ ilogistic模型& M5 h, j6 X& ~& D; L5 @) h
7 S. Q- B$ y. Q/ h- v1 o
前面说了灰度预测只适合用于样本量少的短期预测,logistic更适合中长期预测。
- P( K5 q- m: [' |  e
1 u0 [8 V1 ]+ o8 a% \. y/ r1 ~7 W% i6 f4 R, @! C2 F' V% v
clear  ) u6 W. q5 [/ ]! b: n
clc  ; x0 i3 S  T- q0 B# q4 l/ Z+ P
% 读入人口数据(1971-2000年)  1997 - 2017; ^0 ^& T2 m% @- p4 z
Y=[123626 124761 125786 126743 127627 128453 129227 129988 130756 131448 132129 132802 133450 134091 134735 135404 136072 136782 137462 138271 139008]; + x* b# d- U+ _- Q8 X! P* c7 E: O* k
% 读入时间变量数据(t=年份-1970)  
! R5 W# @( ~, K! @( v+ }7 g: O2 IT=1997:2017;
: }+ n7 [  f/ }4 ~+ U% 线性化处理  
* y: D) d6 g+ D; \( ?& h. wfor t = 1:21,   
, P2 v, ]- v7 H: e   x(t)=exp(-t);  , ~- w/ @% V! a" B% m( c2 O8 f8 w
   y(t)=1/Y(t);  % p" S9 ?. S' i/ Q( q# k+ k3 n
end  
8 w2 Y4 K7 n6 ]5 [% 计算,并输出回归系数B,即计算回归方程 y'=a+bx' 中的a和b的值  
' w5 P) c$ I" p; S0 k* T, {. _c=zeros(21,1)+1;  
( T8 F( B' L- n/ m" o- \- jX=[c,x'];%相当于30个方程组,求解a和b 的值.  
8 r) `) s& B- t: v- CB=inv(X'*X)*X'*y'  
5 u% ?9 e: e2 R. yfor i=1:21,  & h  E- ~6 J& H
% 计算回归拟合值      / B! o9 g: c' y
    z(i)=B(1,1)+B(2,1)*x(i);  * D6 x. ]+ D- H( {
% 计算离差  
1 v& m( i7 w5 e) q* z( U, L    s(i)=y(i)-sum(y)/21;  
' [  e8 S6 X, r# H) p% 计算误差      
8 v% m" G/ n5 {    w(i)=z(i)-y(i);  ' D+ G) \- \" C. S
end  $ M0 h: u. ~- \9 G/ v( e) Q
% 计算离差平方和S  
3 y4 O4 g& |9 U0 |, aS=s*s';  $ i7 V) i- Z! A% f* {4 k3 x
% 回归误差平方和Q  9 a1 F" R, o- m0 _1 g4 {
Q=w*w';  + j* u) j3 O% F% D( X
% 计算回归平方和U  
" W8 I7 K1 t; l# p/ X) SU=S-Q;  - S  W9 N" m- \( R. n& Q% |7 Y
% 计算,并输出F检验值  ) ]4 R0 X0 o; a, k" I7 z+ B( E1 ~) C
F=28*U/Q  
0 Z) p( Y. G. u+ P! _5 ?% 计算非线性回归模型的拟合值
# J' ^0 o9 N1 j$ bfor j=1:21,  
: x7 k% ?0 Z1 n7 h7 k, N" _6 V  }- |    p(j)=1/(B(1,1)+B(2,1)*exp(-j));  
! V2 X; o; N3 L$ L% }end  
: C5 S8 y7 c8 K, [- p% 输出非线性回归模型的拟合曲线(Logisic曲线)  7 q! Z1 U9 j. @) X% {
plot(T,Y,'r*')6 V2 |1 u* ?# |
hold on6 {+ c7 i1 r2 U) N1 v, F) L4 f
plot(T,p);
/ b2 F1 s3 q% H
+ U: ?& c. L3 j# i最后拟合出来的效果,无敌爆炸烂好吧,我也不知道为什么,等自己以后会了再来改吧
1 L' _& _4 }0 A. W2 r5 o: N' m8 @
/ D+ W: s) _. n5 U4 T3 v
$ r( B( d8 Y# M# t/ T7 I  U) w! h6 g, d! j2 {' c% W7 a8 J
; k7 v$ i: k+ Y  y- E5 n& L

数学建模解题思路与方法.pptx

117.69 KB, 下载次数: 2, 下载积分: 体力 -2 点






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5