Python实现新型冠状病毒传播模型及预测代码实例


Posted in Python onFebruary 05, 2020

1.传染及发病过程

一个健康人感染病毒后进入潜伏期(时间长度为Q天),潜伏期之后进入发病期(时间长度为D天),发病期之后该患者有三个可能去向,分别是自愈、接收隔离、死亡。

2.模型假设

潜伏期Q=7天,根据报道潜伏期为2~14天,取中间值;发病期D=10天,根据文献报告,WHO认定SARS发病期为10天,假设武汉肺炎与此相同;潜伏期的患者不具有将病毒传染给他人的能力;发病期的患者具有将病毒传染给他人的能力;患者在发病期之后不再具有将病毒传染他人的能力;假设处于发病期的患者平均每天密切接触1人,致使该人患病的概率为γ最初只有一个人类感染者;病情自然发展,没有外部干扰。

3.模型公式

Python实现新型冠状病毒传播模型及预测代码实例

Python实现新型冠状病毒传播模型及预测代码实例:人类感染该病毒的天数

Python实现新型冠状病毒传播模型及预测代码实例: 第N天感染该病毒并且处于发病期的患者数量

Python实现新型冠状病毒传播模型及预测代码实例 : Q天前新被感染患者,当日进入发病期的数量

Python实现新型冠状病毒传播模型及预测代码实例: 当日发病期满,不再具有传染能力的患者数量

4.模型初始值

根据假设,最初只有一个人类感染者,所以:

Python实现新型冠状病毒传播模型及预测代码实例

5.实际疫情数据

人类感染病毒且发病的初始日期:根据财新网的报道,官方通报首例不明原因肺炎是在12月8日,考虑到确诊之前肯定已经尝试过各种治疗方案无效后认定为不明原因肺炎,所以有理由认为该名患者在12月8日已经处于发病期末端,根据假设发病期为10天,所以可以假设该名患者在11月29号发病,即N=1对应11月29日。

日新增发病数 Python实现新型冠状病毒传播模型及预测代码实例

近期疫情防控大事记:

Python实现新型冠状病毒传播模型及预测代码实例

从以上信息可以判断核酸检测试剂是在1月16日、17日大幅使用的,18日、19日确诊大量病例,因此1月20日之前的确诊病例数对模型参考意义不大。1月20日之后,可以认为新发病例,发病即检测。

截至1月20日24时,国家卫健委公告累计确诊病例291

截至1月21日24时,国家卫健委公告累计确诊病例440

截至1月22日24时,国家卫健委公告累计确诊病例571

截至1月23日24时,国家卫健委公告累计确诊病例830

截至1月24日24时,国家卫健委公告累计确诊病例1287

所以:

1月21日新增确诊病例:440-291=1491月22日新增确诊病例:571-440=1311月23日新增确诊病例:830-571=2591月24日新增确诊病例:1287-830=457

考虑到:

1月20日之后发病即检测确诊检测用时2日国外新增病例在个位数,且不能保证发病即检测等因素,暂不考虑新增病例应该递增,所以1月22日新增数据异常,舍去

使用上溯每日新增数据,同时考虑到确诊需要2天, 可以得到:

Python实现新型冠状病毒传播模型及预测代码实例, Python实现新型冠状病毒传播模型及预测代码实例, Python实现新型冠状病毒传播模型及预测代码实例

Python实现新型冠状病毒传播模型及预测代码实例 对应11月29日 )

6.拟合确定 Python实现新型冠状病毒传播模型及预测代码实例

根据近期每日新增数据、模型初始值及模型公式,用最小二乘拟合得到 Python实现新型冠状病毒传播模型及预测代码实例

Python实现新型冠状病毒传播模型及预测代码实例

7.预测

患者数量:根据上文确定的模型及参数,从11月29日(N=1)至1月27日(N=60)人群中累计处于发病期的人数如下图所示:

Python实现新型冠状病毒传播模型及预测代码实例

根据模型,近期人群中患者数量计算如下:

Python实现新型冠状病毒传播模型及预测代码实例

人群中感染了病毒并处于发病期的患者数量,注意Pn一般需要延期2日才能确诊

每日新增患者数量:

根据模型,近期人群中每日新增患者数量计算如下:

Python实现新型冠状病毒传播模型及预测代码实例

注意:图中是人群中新增发病患者数量,可与晚2日的政府发布新增数量进行对比。即22日新增患者数量可与24日政府发布的新增病例进行对比。截至目前模型计算22日新增为369人,政府公布的24日新增病例457人

根据以上模型预计未来几日的情况如下:

1月25日将新确诊432例,人群中发病患者为4068人;

1月26日将新确诊505例,人群中发病患者为4759人;

1月27日将新确诊590例,人群中发病患者为5568人;

1月28日将新确诊691例,人群中发病患者为6514人;

1月29日将新确诊809例,人群中发病患者为7621人。

由于1月20日之后采取的各种措施,将导致发病期D下降,感染概率 Python实现新型冠状病毒传播模型及预测代码实例 下降,1月29日之后日均增长势头会减弱。

8.模型代码

import numpy as np
import matplotlib.pyplot as plt
 
gamma = 0.55
Q = 7
D = 10
P = np.zeros(300, dtype=np.float)
Psum = np.zeros(300, dtype=np.float)
for i in range(Q):
  P[i] = 1
for j in range(300-Q):
  P[j+Q] = P[j+Q-1]+P[j]*gamma
  if j+Q-D-Q >= 0:
    P[j+Q] -= P[j+Q-D-Q]*gamma
  if j+Q == D:
    P[j+Q] -= 1
plt.xlabel("N")
plt.ylabel("PN")
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.plot(range(1, 61), P[0:60])
plt.grid()
plt.show()

以上就是三水点靠木小编给大家整理的全部内容,如果大家有任何补充可以联系小编。

Python 相关文章推荐
python进程管理工具supervisor使用实例
Sep 17 Python
使用Python的Flask框架来搭建第一个Web应用程序
Jun 04 Python
Python高级用法总结
May 26 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
Jul 11 Python
python3基于OpenCV实现证件照背景替换
Jul 18 Python
Python3对称加密算法AES、DES3实例详解
Dec 06 Python
python控制nao机器人身体动作实例详解
Apr 29 Python
python将print输出的信息保留到日志文件中
Sep 27 Python
Python 串口通信的实现
Sep 29 Python
python-图片流传输的思路及示例(url转换二维码)
Dec 21 Python
Pytorch中的数据集划分&正则化方法
May 27 Python
Python基础之变量的相关知识总结
Jun 23 Python
基于Tensorflow批量数据的输入实现方式
Feb 05 #Python
Python操作注册表详细步骤介绍
Feb 05 #Python
Python类继承和多态原理解析
Feb 05 #Python
Python模块 _winreg操作注册表
Feb 05 #Python
python3操作注册表的方法(Url protocol)
Feb 05 #Python
Python tkinter模版代码实例
Feb 05 #Python
Python Scrapy框架第一个入门程序示例
Feb 05 #Python
You might like
php的curl封装类用法实例
2014/11/07 PHP
PHP根据key删除数组中指定的元素
2019/02/28 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
2019/10/11 PHP
Nigma vs AM BO3 第一场2.13
2021/03/10 DOTA
jquery.Jwin.js 基于jquery的弹出层插件代码
2012/05/23 Javascript
浏览器打开层自动缓慢展开收缩实例代码
2013/07/04 Javascript
使用jquery动态加载js文件的方法
2014/12/24 Javascript
jQuery中has()方法用法实例
2015/01/06 Javascript
JavaScript统计网站访问次数的实现代码
2015/11/18 Javascript
简单解析JavaScript中的__proto__属性
2016/05/10 Javascript
JavaScript获取IP获取的是IPV6 如何校验
2016/06/12 Javascript
JS只能输入正整数的简单实例
2016/10/07 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
2016/12/25 Javascript
js如何找出字符串中的最长回文串
2018/06/04 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
2018/09/04 Javascript
js继承的这6种方式!(上)
2019/04/23 Javascript
浅谈vue异步数据影响页面渲染
2019/10/29 Javascript
JQuery插件tablesorter表格排序实现过程解析
2020/05/28 jQuery
[02:39]我与DAC之Newbee.Moogy:从论坛到TI
2018/03/26 DOTA
python中__call__内置函数用法实例
2015/06/04 Python
对Python3中dict.keys()转换成list类型的方法详解
2019/02/03 Python
对python周期性定时器的示例详解
2019/02/19 Python
Tkinter中复选菜单是否被选中的判断与设置方式
2020/03/04 Python
基于Python测试程序是否有错误
2020/05/16 Python
使用Python webdriver图书馆抢座自动预约的正确方法
2021/03/04 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
全球知名提供各类营养保健品的零售商:Vitamin Shoppe
2016/10/09 全球购物
Myprotein台湾官方网站:全球领先的运动营养品牌
2018/12/10 全球购物
超市营业员求职简历的自我评价
2013/10/17 职场文书
毕业生的自我评价分享
2013/12/18 职场文书
圣诞节红领巾广播稿
2014/02/03 职场文书
大学学习个人的自我评价
2014/02/18 职场文书
2014副镇长民主生活会个人对照检查材料思想汇报
2014/09/30 职场文书
爱国电影观后感
2015/06/19 职场文书
Nginx配置Https安全认证的实现
2021/05/26 Servers
详解JSON.parse和JSON.stringify用法
2022/02/18 Javascript