疫情什么时候才能结束?菜鸟用Python进行预测
云栖号:https://yqh.aliyun.com
第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策!
什么时候能去武大看樱花?什么时候才能再去重庆吃麻辣火锅?什么时候才能再去海南冲浪?什么时候才能再去大理看风花雪月?2020年的春节显得格外漫长,一切的计划似乎都被突如其来的新冠肺炎疫情给打断了。
究竟什么时候生活才能恢复正常?本文将试图用python对疫情的趋势做个预测,待疫情结束之时,一起去武汉看樱花,一起去春熙路看小姐姐可好。
1.准备工作
编程环境:anaconda下Spyder。
数据来源:整理自国家卫生健康委员会官网。
需要安装的依赖库有:scipy。scipy是一个用于数学、科学等领域的开源科学计算库,其建立在Numpy之上,可用于处理积分、优化、常微分方程数值解的求解、信号处理等问题。本文主要用于函数拟合。
2.算法流程
1).理论解释
如何预测新冠肺炎的累计确诊人数,目前常用的方法有基于SIR的传染病模型,以及基于Logistic方程的方法等。SIR模型实现起来相对较复杂,本文将基于一个更简单的模型——利用Logistic方程进行预测。
Logistic方程可用于描述,物种增长模型,当一个物种迁入到一个新生态系统中后,若该物种在非理想生态系统(存在天敌,食物、空间等资源紧缺等)中存在生存阻力,则物种数量大致呈现S型增长。开始产生一个缓慢的增长期,慢慢的呈现指数型爆发,后期随着环境阻力的变化,逐渐趋于稳定。
用函数可以表示为:
参数的含义如下:
:表示随着时间的变化,环境中物种的数量。
:表示环境中物种能达到的极限值。
:表示环境开始时期,物种的数量。
:表示增长速率,在图形中展现的就是曲线的陡峭程度,越大,物种数量越快逼近N值。
:表示时间。
2).程序实现
程序中,首先定义待拟合函数,然后获取“累计确诊”人数数据,并利用curve_fit()函数进行参数拟合,得出需要拟合的参数。最后将拟合曲线和实际确诊人数在同一图中显示,直观观测出模型效果。
通过将1月20日至2月8日的数据进行Logistic方程拟合,在2月9-11日三天预测数据和实际数据较为吻合。但在2月12日,官方的数据突然激增,这让我们的模型失效。
在重新调整训练数据,我们选择将1月20日至2月26日的数据作为训练数据,2月27-28日数据作为对照数据,可得到新的拟合曲线,预测值和实际值都相对较为吻合。
结论:
(1)利用Logistic方程进行预测的数据统计口径很关键,统计标准一致,可以让整个拟合曲线更为平滑。
(2)通过预测曲线预计累计确诊人数将在3月上旬达到最大值(预计为8万余人),之后疫情将逐渐趋于稳定。
休息了那么久,在疫情即将结束之际,也希望大家新的一年里,不要被疫情耽误,尽快进入工作。山花烂漫之时,一起去旅行。
云栖号:https://yqh.aliyun.com
第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策!
原文发布时间:2020-03-06
本文作者:野马
本文来自:“菜鸟学Python”,了解相关信息可以关注“菜鸟学Python”
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
不能错过!跟踪数据的Python技巧
云栖号:https://yqh.aliyun.com第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策! 了解如何运用Python的某些数据对象,有利于保持井然有序的状态,避免在处理数据科学项目中的大量数据时出错。 在数据科学项目中,有时想跟踪数据信息,或者希望灵活、快速、轻松地更新数据的全新输入。 为此,小芯整理这篇文章。在本文中,你将学会: · 在执行loop命令时,跟踪索引· 更新全新的dictionaryitems函· 使用可重用对象记录新信息 我们将从这些问题入手,详细介绍如何使用Python工具解决问题。 希望这种方法能有助于这些工具在代码中应用位置的可视化。 1、一边执行Loop命令,一边跟踪 假设有一张好友姓名列表。既要遍历列表,又要跟踪计数。该怎么做?使用enumerate即可。 >>>friends = ['Ben', 'Kate', 'Thinh'] >>> for i, item in enumerate(friends): >>> print(f'{i}: {...
- 下一篇
好程序员Java教程入门基础之Tomcat学习
Jrebel公布了一份2020 Java生态系统报告,调查结果显示,有61%的开发者们使用的主要应用服务器还是Tomcat。很多初学Java的人不知道怎么入门Tomcat,接下来的好程序员Java学习教程中,给大家做一个简单的知识梳理。Tomcat是什么Tomcat是由Apache开发的一个Servlet容器,实现了对Servlet和JSP的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。Tomcat包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。Tomcat重要目录/bin - Tomcat 脚本存放目录(如启动、关闭脚本)。 .sh 文件用于 Unix 系统; .bat 文件用于 Windows 系统。/conf - Tomcat 配置文件目录。/logs - Tomcat 默认日志目录。/webapps - webapp 运行的目录。Tomcat常见组件1.服务器(server)实例,通常一个JVM只能包含一个实例,一般情况下,一个物理服务器可以启动多个JVM,从而启动多个实例,但一般不这么做。2.服...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Mario游戏-低调大师作品
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- 设置Eclipse缩进为4个空格,增强代码规范