数学建模社区-数学中国
标题:
数模竞赛-人口问题
[打印本页]
作者:
杨利霞
时间:
2019-4-12 16:29
标题:
数模竞赛-人口问题
数模竞赛-人口问题
' C7 S X' l- X1 A9 i
4 U( e# U1 S- j8 M' f* H
学校最近的数学建模比赛,刚好组内同学也有想参加的,就一起报名了
( t3 I/ ?$ q7 R6 O+ Q& T
( G; V, V7 d/ F; |8 T3 Z# s
人口问题
$ ^ n; M# \7 c7 c' t
t; g6 h: ~6 X* O$ ~' U2 v6 }
在全面两孩政策正式实施之前,卫计委牵头进行了全面两孩政策影响生育的预测研究。
( A" ] t2 A \
根据最后完成的《实施全面两孩政策人口变动测算总报告》,
" W5 R4 d! B1 W) M8 B t0 k3 R6 R
2016年放开全面两孩,2017到2021年5年间增加两孩出生数将为1719.5万人,平均每年增加340万左右。
1 O5 [- z2 G) n* a* v5 G# n
其中,2017年出生人口总量将达到2109.9万人,2018年达到峰值,为2188.6万人。
% t/ s% V, C1 |; j; i
国家统计局2018年01月18日公布数据显示,去年全国出生人口数量和人口出生率双双下降。
# C0 n! P4 n" W" g
2017年全年共出生人口1723万人,比预测数据“少了387万人”,低于2016年的1786万人。
- ]4 P* p" [' s6 v) u
人口出生率也同样出现了明显下降,去年全国人口出生率为12.43‰,2016年这一数据为12.95‰。
6 S. W8 D0 q& P8 c
由于与之前预测相差甚远,这个数据甚至令不少人口学界人士感到意外。
! Z6 X2 O& w5 v$ C7 _; X
3 C4 B, u5 U. G9 b
建立数学模型分析下列问题:
4 A9 Z$ e2 F0 W
8 Y+ A9 i' h& ?3 t0 Q! I
(1) 在现有政策下预测未来人口的变化趋势。
' N' O1 w1 ^5 _3 H4 z
(2) 如何才可达到《实施全面两孩政策人口变动测算总报告》的预测效果。
7 b" }3 V9 t! k$ ^; p
(3) 分析人口变化的主要因素,建立人口增长与这些因素间的关系。
+ ~/ J: h7 |+ Y7 u
(4) 依据你的研究给政府相关部门写一份800字左右的报告。
; a% b1 ?( \7 ~
2 j v; I y- Z* H2 J: ?6 l- m
拿到手感觉还不算难吧,网上应该有很多这样的分析,但是网上大部分都是时间有点久的,这个是考虑全面开放二胎后得人口变化,主要还是用近年的数据,这样得分会高一些。
+ t' r- f' ?3 A
) N% _8 w- K- p1 J* q6 D
人口预测模型
( M% w2 V4 u* A' e4 F0 @
+ c! v0 X9 H& O8 m
先说我查到的几个模型吧,指数模型,灰度预测模型(这个网上被吐槽得很水),logistic模型,Leslie矩阵,大概就这几个了,然后论文里面用得是灰度预测和logistic模型,Leslie矩阵我很想加进去,因为它用当前人口年龄结构来预测未来的人口,感觉很切合题目。但是没找到合适的,就不了了之了。
* L2 d; T2 [6 C
" ?6 \# T3 O4 }: l9 i) U
灰度预测
* e: |' x# N8 r8 A
% J3 W% b U3 `4 X- b, |, ~
先说公式推导
4 K: p/ e# ~! ~* B
mathType的公式好像无法在makedown上面显示,我就截图吧
3 Q- f0 t, m, e7 J2 r
5 H# ]& @! Y7 M0 T" d# Z; p
$ K( K/ L& V) C1 Q
7 r5 ]3 K7 k/ t) C, }
9 g0 U5 U4 P+ m# b
上面就是公式的推导,下面是matlab的代码
$ G u Y6 v2 b$ i. P* ]/ R/ R6 f8 a0 p
3 f+ \9 E* H5 ~& |; G9 B
clc,clear;
0 N% D2 z4 m& W+ k n1 G( g
syms a b;
) X d# D* X5 a$ I; I: L& c0 B
c=[a b]';
a+ C, O3 `( u! b
%2012-2017
. N" C3 \3 v: T. U8 y
A=[ 135404 136072 136782 137462 138271 139008];
( x) T# M: G- ]; }. o: r
B=cumsum(A); %原始数据累加
# o2 U- m! m, J7 r! U
n=length(A);
' d2 `- E8 j* w% G7 f* |5 m
for i=1
n-1)
, Z C! c: Q5 \% V. x6 N% }7 v
C(i)=(B(i)+B(i+1))/2; %生成累加矩阵
{: g k. D( S6 M2 s
end
]" F' w9 k) j" C$ x i% i! W: `
%计算待定参数的值
) n$ b, j/ i4 l
D=A;D(1)=[];
J0 U! h8 _( b
D=D';
$ D" i' R4 f* ^3 v
E=[-C;ones(1,n-1)];
+ ]( O$ {8 T3 N f* [. Z
c=inv(E*E')*E*D;
+ e0 G4 ^5 b/ ]( u0 C
c=c';
5 {% r! F( l# [4 r! f% |$ d9 v+ _
a=c(1);b=c(2);
) o$ |1 ?! n7 m
%预测后续数据
. R0 J9 U* d2 [! k* q$ X. a
F=[];F(1)=A(1);
0 D) K Z% O1 q* m8 J
for i=2
n+5) %只推测后5个数据,可以从此修改
# l3 k" C/ D7 ^. }8 j; N5 x% G: b& ^
F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;
. A5 z# b$ T) u# L P: s
end
" r/ b& q0 K0 \: z, B, @
G=[];G(1)=A(1);
/ W" i* _" X: {3 w
for i=2
n+5) %只推测后5个数据,可以从此修改
( d) \4 R2 { a8 c" T
G(i)=F(i)-F(i-1); %得到预测出来的数据
# Y1 I) ^' g1 A) P
end
6 E% g8 I4 }& M/ m
t1=2012:2017;
+ e: w2 B/ W, P) K4 N5 X
t2=2012:2022; %多10组数据
* `0 C4 x7 h) Y, r3 s
G
' S+ Y5 D& A( t% w
h=plot(t1,A,'o',t2,G,'-'); %原始数据与预测数据的比较
' S# K# P! O' p) E. V
set(h,'LineWidth',1.5);
" A! o% ~. M+ ~7 C: y7 Y
$ }( m% E" w) S/ j6 L( m
这是Excel里面的人口数据
- B3 ?* K/ O- x1 `% J9 z
@, z l+ h; S5 M0 t
最后得出的结论,感觉还是挺靠谱的。
$ ?; c0 v9 F( \2 B) |6 }
! ^" L* {( u/ x; |5 }# k
@' r; a2 r) U0 D
logistic模型
5 r7 k3 k( g" M' w0 B
N b% ^4 v5 K8 i# }
前面说了灰度预测只适合用于样本量少的短期预测,logistic更适合中长期预测。
9 u% C7 U: d9 N
( { h' g4 p1 H- Q6 o
) E1 ~, {8 O. G" R
clear
b+ S9 v( M$ I& W# d
clc
- T# I( C; a" J
% 读入人口数据(1971-2000年) 1997 - 2017
9 B/ z1 o. X# [) y1 s
Y=[123626 124761 125786 126743 127627 128453 129227 129988 130756 131448 132129 132802 133450 134091 134735 135404 136072 136782 137462 138271 139008];
3 Z5 I; k$ ?$ p% ?8 s$ @
% 读入时间变量数据(t=年份-1970)
5 Y. ]4 M. {7 }
T=1997:2017;
. \+ r# o2 A) H3 O; i
% 线性化处理
4 r! X+ Z! b [% f' ^! t
for t = 1:21,
$ D" d X# l1 }4 s8 p* K
x(t)=exp(-t);
9 K5 ?) ^' A8 G1 u" c( U* h7 R
y(t)=1/Y(t);
5 f- q+ {4 [: _
end
+ U" ?4 x6 z% d1 y$ e+ C
% 计算,并输出回归系数B,即计算回归方程 y'=a+bx' 中的a和b的值
$ j+ F. I! e6 S1 l( g
c=zeros(21,1)+1;
9 Y" K8 n4 S% l. I" H5 A
X=[c,x'];%相当于30个方程组,求解a和b 的值.
; }* w; G0 m& D2 }
B=inv(X'*X)*X'*y'
5 l) A! o" N$ Q# d
for i=1:21,
; a8 t3 @- Y1 X! t0 }) {4 {
% 计算回归拟合值
* T y2 f, I/ w T8 u
z(i)=B(1,1)+B(2,1)*x(i);
# Z, ?* }, s9 e- m5 J
% 计算离差
# b! N g6 V7 Y. I1 z L1 o
s(i)=y(i)-sum(y)/21;
8 r% ~9 W! s4 H |( H" v
% 计算误差
* y2 `: \0 F5 ?& [) y2 m/ s8 {
w(i)=z(i)-y(i);
; b, d3 U$ i6 J) o
end
# l6 q. A& c( Z+ W
% 计算离差平方和S
+ p6 u; i5 V$ d$ Z" V
S=s*s';
$ {' ?" p$ i: V9 o, w' ~
% 回归误差平方和Q
) J( M$ E _% z, h0 T
Q=w*w';
: q1 X' b3 b1 @9 D
% 计算回归平方和U
6 _2 @4 J/ [% r2 l' W% D
U=S-Q;
* O) e0 \( T* D
% 计算,并输出F检验值
% X: ^& V+ r6 ]2 W) h. n1 N; ~
F=28*U/Q
5 I+ O @8 e- Z7 k* x
% 计算非线性回归模型的拟合值
$ }* D. P4 d8 K9 \6 Z
for j=1:21,
; M# a! i- Q* d3 W. _
p(j)=1/(B(1,1)+B(2,1)*exp(-j));
|% W# Y6 S0 z6 U+ f( m; ^4 g- {
end
8 x1 k9 M6 V I7 L' Y
% 输出非线性回归模型的拟合曲线(Logisic曲线)
: O' u% c& d- `2 ~
plot(T,Y,'r*')
2 K7 F" x( L( t1 j$ q. q
hold on
/ m& m# j7 e8 U3 c' d- T8 \
plot(T,p);
* A" O5 S$ H& S% G' _! q6 L
, s/ J, r }5 E4 K* N
最后拟合出来的效果,无敌爆炸烂好吧,我也不知道为什么,等自己以后会了再来改吧
4 S& n" ^3 Y- O1 I# A
) o* i# v$ U/ S2 t
5 N* u7 b8 s* v8 G, S. Q1 i" F. e
, c I: v3 H$ \
) {& t2 a/ \& N1 m! H U
数学建模解题思路与方法.pptx
2019-4-12 16:29 上传
点击文件名下载附件
下载积分: 体力 -2 点
117.69 KB, 下载次数: 2, 下载积分: 体力 -2 点
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5