数学建模社区-数学中国

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

作者: 杨利霞    时间: 2019-4-12 16:29
标题: 数模竞赛-人口问题
数模竞赛-人口问题
% ]; Z5 U, Y" |# ^' Y9 e# N5 [0 _% h1 d. x" E" L8 U0 @
学校最近的数学建模比赛,刚好组内同学也有想参加的,就一起报名了
" n* c4 p% d5 {4 |3 d$ X  d) p
& V. K' {' q7 Z" S1 G人口问题
, p. h( x1 ?  U. x3 _1 \. F) g) A2 B7 B6 }- H( ^
在全面两孩政策正式实施之前,卫计委牵头进行了全面两孩政策影响生育的预测研究。
. }2 C" Q) R* |根据最后完成的《实施全面两孩政策人口变动测算总报告》, 4 u, F0 a  U! c3 g2 t
2016年放开全面两孩,2017到2021年5年间增加两孩出生数将为1719.5万人,平均每年增加340万左右。
, |' U# V6 j& Z4 k( R& n% s0 R其中,2017年出生人口总量将达到2109.9万人,2018年达到峰值,为2188.6万人。 , I! H6 c: F+ {/ X
国家统计局2018年01月18日公布数据显示,去年全国出生人口数量和人口出生率双双下降。 5 G3 B  @) o1 A+ U
2017年全年共出生人口1723万人,比预测数据“少了387万人”,低于2016年的1786万人。
% L, R, C4 b! J, I人口出生率也同样出现了明显下降,去年全国人口出生率为12.43‰,2016年这一数据为12.95‰。 ; V# w) n* x. C2 t; v
由于与之前预测相差甚远,这个数据甚至令不少人口学界人士感到意外。
4 l; J/ D& f2 \+ Y; {# a/ Y" q& z- a
建立数学模型分析下列问题:
! R& |6 [$ `, @, j& G+ r; H; Q: J: L9 R3 V6 i% N
(1) 在现有政策下预测未来人口的变化趋势。
7 w$ _7 p3 Z. N! y(2) 如何才可达到《实施全面两孩政策人口变动测算总报告》的预测效果。 . S: f7 s6 |- u. ?& m/ l3 x
(3) 分析人口变化的主要因素,建立人口增长与这些因素间的关系。 " n* W+ a1 X6 L+ L- v* ~3 w+ m1 t# D
(4) 依据你的研究给政府相关部门写一份800字左右的报告。
1 C' ?$ o6 P# }7 C) {9 n* c1 Z- X" W* C2 E3 W( M% @1 Y! f( p' w  p( w
拿到手感觉还不算难吧,网上应该有很多这样的分析,但是网上大部分都是时间有点久的,这个是考虑全面开放二胎后得人口变化,主要还是用近年的数据,这样得分会高一些。
' S% o6 p  a# Z  r$ W
7 a% g* V+ G( d/ k# ?人口预测模型5 X% G$ U; L9 x4 X# D, b  X; t

  _# Y0 [$ k6 g) l6 d先说我查到的几个模型吧,指数模型,灰度预测模型(这个网上被吐槽得很水),logistic模型,Leslie矩阵,大概就这几个了,然后论文里面用得是灰度预测和logistic模型,Leslie矩阵我很想加进去,因为它用当前人口年龄结构来预测未来的人口,感觉很切合题目。但是没找到合适的,就不了了之了。* ~) C% n/ y9 A: j) Z0 X) ~# v* H8 k) {

0 ^1 m0 R1 a- N! f灰度预测" o  p' P1 b8 I
  c: G: R8 j4 F$ w$ ]; N: l
先说公式推导
0 y$ f5 u: i, {4 {* D3 O5 D- omathType的公式好像无法在makedown上面显示,我就截图吧
% j8 p, _% E- ~# R
: R; Z7 q- z% y7 x/ }! a. j& a: @8 R8 I7 \7 {
* V7 ]4 d& H& n4 n0 p- ^. t
  S* q8 A# g! ?1 t
上面就是公式的推导,下面是matlab的代码
& I! n9 w$ S2 _  E' n
8 r) w" Z. @- D8 V+ j+ ]" G4 @3 wclc,clear;  
% ]2 V$ |9 S! M$ Bsyms a b;  4 v2 B0 Q5 H$ @! q; u" c) e( R) g
c=[a b]';  ! H1 o. y$ b% o2 |* D7 r
%2012-2017
- O4 _7 s4 V2 `) D# HA=[ 135404   136072   136782   137462   138271   139008];
% l7 ]+ U5 Z( l" Q4 K  bB=cumsum(A);  %原始数据累加  
  U7 L# l) d, n0 w* _# a6 Pn=length(A);  ' M2 m# ?5 t3 B$ c( N9 ?* q
for i=1n-1)  
4 F4 ]9 w# m; r6 q0 c0 I    C(i)=(B(i)+B(i+1))/2; %生成累加矩阵  " ?6 w9 L. E' o% v/ i
end  3 G$ k% `. z6 ~2 V3 Q. W2 U
%计算待定参数的值  1 ?8 t, R- g5 o) I  d& s
D=A;D(1)=[];  5 {# D% l9 x( k$ i/ J
D=D';  
+ g6 m, l: R( p' z6 sE=[-C;ones(1,n-1)];  , B" G' ?! }1 y
c=inv(E*E')*E*D;  
3 w3 V/ D4 _5 Z' z- r& H6 uc=c';  
( d$ i3 N1 e, la=c(1);b=c(2);  8 g8 h6 ^+ I, u6 `" ^, ~
%预测后续数据  
; _  t+ @" `" hF=[];F(1)=A(1);  8 M( v& i9 u0 E. n/ X# O0 _9 X% z
for i=2n+5)  %只推测后5个数据,可以从此修改  
$ h/ \& {3 M9 X  K" w    F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;  / G/ R: L* H' N4 r- L
end  $ R4 L6 B9 M% {
G=[];G(1)=A(1);  4 w+ }) D) \) p
for i=2n+5)  %只推测后5个数据,可以从此修改  ! e/ A3 c" Y0 g6 `" Z
    G(i)=F(i)-F(i-1);  %得到预测出来的数据  
" M5 X1 ]2 D8 E1 Y* zend  
" I, A. o0 S, s) Ut1=2012:2017;  
  M. J3 n0 s2 v& I- P5 \, D8 At2=2012:2022;  %多10组数据  
6 a' h4 A8 x3 L8 B1 a/ E# t6 p$ I1 CG% C! [2 K, g  I, c' y- a' P
h=plot(t1,A,'o',t2,G,'-'); %原始数据与预测数据的比较  
" B+ M' i) |$ a) [8 @set(h,'LineWidth',1.5);3 C, d% V, h9 u8 X0 F9 |! }4 I/ J

9 ~1 a' D: v. J9 g: Z+ ^! i5 O这是Excel里面的人口数据
9 N7 q! t- K' m2 f4 S2 Y
$ e, r) O* N% y' x' ?0 b! N8 P; H最后得出的结论,感觉还是挺靠谱的。
7 P' `6 `0 k6 g/ p* l" N) C( Q- H$ U/ I

2 W/ L6 D( H% u3 \: a& wlogistic模型
3 E4 w; [% _9 i+ Q
& m  }" N+ P5 Q$ S! |9 e% X前面说了灰度预测只适合用于样本量少的短期预测,logistic更适合中长期预测。
# F6 }8 h& o0 n: ~# H
2 L  Z( P& _5 }1 N
6 [% e5 }' m8 J5 Jclear  
+ ^& l9 H9 U/ m4 N2 C0 n  \& Tclc  
- e/ N' ?3 u1 x# R6 T8 {. C* H, G% 读入人口数据(1971-2000年)  1997 - 2017: A, T# y+ T8 ?  ~1 n3 @4 Y& L
Y=[123626 124761 125786 126743 127627 128453 129227 129988 130756 131448 132129 132802 133450 134091 134735 135404 136072 136782 137462 138271 139008]; ! y$ ?) v3 A) V' u; m, ~1 }
% 读入时间变量数据(t=年份-1970)  
1 K& o! I- C0 A3 X( m4 X3 R  {/ q4 X/ nT=1997:2017;
/ K, e8 @$ @3 y7 q6 x. A% o$ Z% 线性化处理  
! J+ ?4 w% f8 Pfor t = 1:21,   ( q0 _4 K7 k5 z4 r
   x(t)=exp(-t);  ( @2 }! |! s. L; n- J
   y(t)=1/Y(t);  
, Y' Q* E3 E5 B0 F4 Cend  
$ L4 y9 A; {4 m9 D% 计算,并输出回归系数B,即计算回归方程 y'=a+bx' 中的a和b的值  
! m: t$ P( v2 D9 Dc=zeros(21,1)+1;  
. K9 Q+ {3 V! d0 V8 m) pX=[c,x'];%相当于30个方程组,求解a和b 的值.  
, l3 e" Q# H( KB=inv(X'*X)*X'*y'  
% q' H8 p+ A" lfor i=1:21,  
4 F2 i/ T* U6 }% d' _7 \" d- p% 计算回归拟合值      ; e# R( Z& ~# L2 u; A0 F" l
    z(i)=B(1,1)+B(2,1)*x(i);  ' u' k. ^& C% ?3 u3 e3 w& F
% 计算离差  
6 U5 m) f4 V) [    s(i)=y(i)-sum(y)/21;  ; x8 G+ M( d% T. t: a3 N
% 计算误差      3 h" q6 `6 O3 K9 T5 X
    w(i)=z(i)-y(i);  
, f- R2 G) p/ s+ W9 tend  
# I1 Y$ m9 j4 B4 S% 计算离差平方和S  
4 r" ^' Y4 i8 U6 s+ y- {7 @S=s*s';  . i' r  O/ n% J4 e4 e! G* V. P
% 回归误差平方和Q  0 C+ P! ]7 Z* s8 o
Q=w*w';  : T2 M  h1 ~; u; B' p3 b
% 计算回归平方和U  
3 f6 n# \9 Z# G5 L' pU=S-Q;  , }: J; {1 `0 A  P: |
% 计算,并输出F检验值  
, z  g( B; M5 }, g3 ^F=28*U/Q  
! B: _9 G8 D* a1 G6 j% 计算非线性回归模型的拟合值
; O4 ^0 X' C5 K' J0 Rfor j=1:21,  
; {- Z, E1 z6 p; K( r    p(j)=1/(B(1,1)+B(2,1)*exp(-j));  ' L3 M' ]0 a  R: ^9 J9 p
end  " A# O- D+ e1 [  h/ F# t  V
% 输出非线性回归模型的拟合曲线(Logisic曲线)  
9 Y$ D2 L3 @3 }, l& Xplot(T,Y,'r*')/ w! o8 Y& J; |/ Y
hold on
, C9 p% N2 K* I3 u# {1 yplot(T,p);/ r1 }0 _, w% N
; @0 B4 S" X; q2 q. n8 Q+ J
最后拟合出来的效果,无敌爆炸烂好吧,我也不知道为什么,等自己以后会了再来改吧 0 R6 g1 x' b# y; q! }

+ W" @8 p1 I0 T$ [8 O* k* e1 H* z% q. ~$ \3 X
# M6 Q$ t! M% ~
/ r* L; K( X+ t& B$ `' Y2 @! j

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

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






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