基于logistic模型全国or各市人口预测
本帖最后由 木头MT 于 2021-8-3 15:59 编辑这是之前的一次作业 针对于城市规划里面的一个内容
老师上课提的那种算法感觉很简单
就自己去查了一下可以用logistic模型预测人口
就有了这个程序人口
数据可以在统计年鉴里面拿
也可以在国家数据下载 https://data.stats.gov.cn/easyquery.htm?cn=C01
不知道会不会遇到同样学这门课的同学
做地区的数据还是需要用统计年鉴
不过在统计局的网站找起来焦头烂额的
推荐使用知网里面的统计年鉴可以直接下载电子表格!!!
#!/usr/bin/python
# -*- coding: UTF-8 -*-
#基于logistic模型全国人口预测
import numpy as np
import matplotlib.pyplot as plt
import math
import pandas as pd
from numpy import polyfit, poly1d
temp=pd.read_csv(r"testdata/population.csv",header=None)
t=temp
x=temp
x1=temp[:-1]
x2=temp[:-1]
dx=(x2-x1)/x2
a=polyfit(x2,dx,1)
r=a
xm=-r/a
x0=55196
def p(xm,r,x0,t):
f=xm/(1+(xm/x0-1)*np.exp(-r*(t-1949)))
return f
future=np.arange(2020, 2055, 5)
future_predict=p(xm,r,x0,future)
plot1 = plt.plot(t, x, '-',label="data")
plot2 = plt.plot(t,p(xm,r,x0,t),'r',label='theory_data')
plot3 = plt.plot(future, future_predict, '*',label='predict_data')
plt.xlabel('years')
plt.ylabel('population')
plt.legend(loc=0)
plt.show()
p(xm,r,x0,2020)
再贴一个省级各市的预测
做了循环
#基于logistic模型某省各市人口预测
temp=pd.read_csv(r"testdata/gx.csv",header=None)
def p(xm,r,x0,t):
f=xm/(1+(xm/x0-1)*np.exp(-r*(t-2003)))
return f
def predict_population():
n=np.shape(temp)-1
i=1
m=0
t=np.int64(temp)
while i<=n:
x=np.float64(temp)
x1=np.float64(temp)
x2=np.float64(temp)
dx=(x2-x1)/x2
a=polyfit(x2,dx,1)
#r=abs(a)
r=a
xm=-r/a
x0=x
print('增长率%.2f'%r)
#绘图
title=temp
future=np.arange(2020, 2055, 5)
future_predict=p(xm,r,x0,future)
plot1 = plt.plot(t, x, 'k^-',label="data")
plot2 = plt.plot(t,p(xm,r,x0,t),'-r',label='theory_data')
plt.title(title)
plt.xlabel('years')
plt.ylabel('population')
plt.legend(loc=0)
plt.show()
plot3 = plt.plot(future, future_predict, '*',label='predict_data')
for m in range (len(future_predict)):
plt.text(future,future_predict,future_predict,color="red")
m+=1
plt.legend(loc=2)
plt.title(title+"_predict 2020~2050")
plt.xlabel('years')
plt.ylabel('population')
plt.show()
i+=1
各市的图我就贴一个
感觉这种也不靠谱,人口流入流出对拟合应该影响很大 yysyWang 发表于 2021-8-3 16:25
感觉这种也不靠谱,人口流入流出对拟合应该影响很大
其实这种不适合局部性的估计 只有全国总人口才比较符合,毕竟没有人口流动参数参与计算 小伙子你的预测怎么还是向上的啊,人口增长是下滑的 Dengyuntao 发表于 2021-8-3 18:56
小伙子你的预测怎么还是向上的啊,人口增长是下滑的
人口增长是向上的,新生人口是下滑的 wss0823 发表于 2021-8-4 09:58
人口增长是向上的,新生人口是下滑的
好的 我搞混了
页:
[1]