新型肺炎疫情牵动着全国人民的心。截至 2020 年 2 月 1 日 22 时,全国新型肺炎病例已确诊 11890 例,死亡 259 例,治愈 274 例。

不出意外的话,你看到这篇文章的时候,人数还会比这个要多一些。

00

声明&目的

作为一名码农,我们用数据说话,下面为大家分析目前的新型冠状病毒真的严重吗?

声明:

  • 本文只是一个学术的研究,能够获取的数据维度非常单一且数据量也少,并无任何实际的价值和参考意义,请不要对号入座,请不要随便断章取义,歪曲本文。

  • 本文的数据来自于 WHO,国家卫检委,腾讯新闻和澎湃新闻美数课。全部人工抄录,如有错误之处,敬请指出。

  • 本文写于 1 月 26 日,当时获取到的信息非常有限,得出的结论可能会被后续更多的数据被推翻。再次声明,所以本文仅是一个学术的探讨,仅仅是一个思路,并无实际的价值和参考意义。

  • 本人也是个菜鸡程序员,可能会有数据错误,程序没写好,有 Bug 等,欢迎指正批评。一起探讨学习。

目的:本文探讨的主要目的是,有没有一种算法可以根据已有的数据对疫情进行预测和评估,可以方便在疫情出现的时候,根据预测的数据来判断当前的疫情状况。

文章分为如下五个部分:

  • 猜想

  • 数据准备

  • 猜想验证

  • 新型冠状病毒确诊数据的预测和验证

  • 总结

PS : 心急的朋友可以直接拖到末尾看结论。

图片来自丁香园

01

猜想

由于当前新型冠状病毒的数据并不多(从 11 号-26 号),所以仅仅是新型冠状病毒的数据来做研究是不够的,必须还要一组参考验证组。(当然是越多越好,但是精力有限,所以只找了一组)。

首先明确一下判断疫情的严重情况的指标,目前疫情一般会公告这四个数据:

  • 确诊病例

  • 疑似的病例

  • 感染的地区

  • 死亡的人数

由于我们把地区限定在了中国(虽然各个地区不一样),所这个地区的指标就不用了,死亡人数在疫情的前中后期都不太一样,这个也不用。

疑似病例这个和各地的收诊情况有关系,比如香港的疑似病例就非常多,确诊很少,所以这个指标也不采用,剩下就以确诊病例作为唯一的参考指标。

猜想 1:假设病毒的传播和地区,气候以及病毒自身的特征有非常大的关系。

那么只要找到一个和新型冠状病毒这三个属性非常相似的病毒,只要算法能够对这种病毒的确诊病例进行预估和判断,那么算法也可以对新型冠状病毒进行预估和判断。

2003 年 4 月 22 日 SRAS,图源..不太清楚

目前和新型冠状病毒最像的应该就是 SARS:

  • 气候和现在差不多,都是 1 月开始,但是 SARS 在 3 月才扩散。

  • 地区主要是是中国。

  • 病毒类型:都是冠状病毒,都有发烧咳嗽等特征。

那么基于上述的条件,采用了 SARS 作为参考组。

猜想 2:可以给定一个 Δ。

①如果当前确诊的病例-预测的确诊病例的比率>Δ,那么当前的疫情变异了,进一步扩大影响的范围。

②如果当前确诊的病例-预测的确诊病例的比率<-Δ,那么当前的疫情已经基本被控制,已经减弱了。

③如果-Δ<当前确诊的病例-预测的确诊病例的比率<Δ,那么当前的疫情还在平稳的发展中,没有进一步变异。

02

数据的准备

确诊病例的数据:

  • SARS 的数据来源于 www.who.int , 数据从 2003 年的 3 月 17 日-5 月 30 日 。

  • 新型冠状病毒的数据来源于腾讯新闻和国家卫生健康委员会  http://www.nhc.gov.cn  数据从 2020 年的 1 月 15 日到 1 月 26 日。

如果可以拿到 SARS 在 1 月份的数据就好了,可惜没有一个比较完整的地方有记录,基本上卫生部发布的好像是从四月份开始。于是只能采用四月份的数据了。

评估的算法:采用了 LSTM(长短期记忆网络),搭建的话 Keras。

LSTM 已经是个老算法了,经常用于量化投资(简单点来说就是炒股之类,预测股票的增长),非常擅长于时间序列的预测。

最终调教后的算法模型是,根据过去三天的数据,可以预估最新一天的数据。

LSTM

实验的环境:数据量比较少,直接租了一台 16 核 8G 的阿里云的主机进行测试。

03

猜想验证

猜想验证部分直接全部使用 WHO 的 SARS 的数据进行验证。采用的字段是 Cumulative number of case(s),累计病例数,我这里就当它是确诊人数了。

SARS 的数据分别有两部分,一部分是中国大陆的,一部分是中国香港的。在 5 月份后基本已经趋于平缓,所以只取了前两个月(约 60 天左右的数据)。

中国大陆确诊人数变化曲线

中国香港确诊人数变化曲线

可以看到数据涵盖了病毒爆发期,病毒平稳增长期,以及病毒被消灭期,比较合适用来验证算法是否可以拟合整体的曲线。

猜想 1:这里采用前 50 天的数据做训练样本,训练的结果用来预测 60 天的情况。

预测和实际的对比如下:

中国大陆 SARS 确诊人数变化曲线(预测和实际)

中国香港 SARS 确诊人数变化曲线(预测和实际)

从图中我们可以看到,在使用了 90% 的数据量下,数据是拟合的比较好的,肉眼看上去香港的数据基本可以用算法完全预估。

这里给一下数据误差的对比情况:

  • 误差:|(实际值-预估值)/ 实际值 |

  • 中国大陆:误差的平均值 0.057, 误差的均方差 0.060。

  • 中国香港:误差的平均值 0.053, 误差的均方差 0.137。

说人话就是,模型预测的数据和实际的数据最多差了 6%。效果是非常理想的。这里我们可以证明第一个猜想,即 LSTM 可以用来拟合 SARS 确诊人数的变化情况。

猜想 2:实际上虽然猜想一得到了证实,但是依旧没啥用,因为这里的模型是使用了 90% 的数据,基本已经到了传播的后期。

那么前期是否可以使用同一个模型进行验证呢? 这里只取中国大陆的数据进行试验。

根据三个阶段(这三个阶段是肉眼判断截取的,是否合理当时没有考虑)截取对应的数据进行建模,建模后的预测效果如下:

前期的数据建模人数变化曲线(预测和实际)

中期的数据建模人数变化曲线(预测和实际)

后期的数据建模人数变化曲线(预测和实际)

在前期的数据的预测中,到后面两个阶段实际的数据都比预测的数据比要大,说明在疫情开始了爆发。

在中期的数据的预测中,其他两个阶段预测的数据基本都比实际的数据要大, 说明在疫情在前期的感染速度较低,后期的感染速度也变低 。

根据上面两个数据,是可以推测是存在一个 Δ 去判断当前的疫情状况的。但是 Δ 究竟是多少呢?

这里倒是可以根据好几个因素去设置:

  • 斜率的改变

  • 误差的改变

  • 转折点的个数等

这里就偷懒了,可以明显看到各个时期都有一个或者多个转折点(消亡期不算)。

直接取最接近转折点的误差率来计算:

  • 在爆发期里面,最靠近转折点的误差值是 0.21。

  • 在控制期里面,最靠近转折点的误差值是 0.14 。

  • 两个取平均作为 Δ 的值,也就是 0.175 。

04

新型冠状病毒确诊数据的预测和验证

新型冠状病毒从 16 号至 26 号确诊人数变化曲线

分别取前 6 天的数据(到 20 号),取前面 9 天的数据(到 25 号)的数据代入模型进行预估:

到 20 号的数据模型确诊人数变化曲线(预估和实际)

到 24 号的数据模型确诊人数变化曲线(预估和实际)

为什么选 20 号呢,20 号主要是央视有采访钟南山大佬,而且第一次说明了人传人的存在,以及 14 名医护被感染。

我觉得应该算是开始重视这个病毒的一个点,随后各地开始上报疫情,发布以及响应等。

再往前的时间点就数据就比较缺失了,模型精准度已经失去了使用的价值,所以采取了 20 号的这个时间点作为分隔来建造模型。

如果以到 20 号的模型来估算的话,第一次误差偏离 0.17 的时间是 23 号,误差为 0.19。23 号,广东,浙江启动了一级响应,确诊的病人增多。

但个人感觉应该是检测的方法变强导致的,侧面来看,模型的确检测除了异常值,不过并不能够说明病毒变强了。

如果以到 24 号的模型来看,预估的 25 号的数据是 1877,实际的数据 1972,误差率在 0.04,未到偏离值。

所以根据这个模型推断,当前疫情还在持续扩散中,但是并没有进一步恶化,可能国家的高度重视和很多省份都开始参与其中有关系。

依照当前的模型,明天的确诊人数的预估值是 2770,加上 0.17 的误差的话:

  • 如果实际的确诊人数>3337,说明疫情加重。

  • 如果实际的确诊人数<2367,说明疫情正在被控制。

  • 如果处于中间,那还是依旧在扩散发展中,但并未恶化。

再次声明:以上的观点和结论都属于依据当前的确诊人数所作的推断,毫无参考的意义和价值。如果数据刚好对了,不能说明什么,如果数据错了,证明这个模型真的不行。

那么,如果我们带入 SARS 最严重的的时候,会怎么样?

还是按照误差 0.17 来算,在 23 号,误差达到了 0.18,也就是 3 天前,按照这个模型的数据推算,新型冠状的病毒传染性比 SARS 要强。 但很可能是和春运有关系,毕竟数据的时间不一致。

再再次声明:以上的观点和结论都属于依据当前的确诊人数所作的推断,毫无参考的意义和价值。如果数据刚好对了,不能说明什么,如果数据错了,证明这个模型真的不行

05

总结

写这个的目的纯粹是为了探讨和研究,实际上,真的要写一个这种疫情预测和评估的系统,需要非常多的参考的数值。

比如医护人员的数量,检测手法准确率,时间,病毒的潜伏期等等,需要非常多的人力物力才可以编写完成,像本文这种只靠单一维度的输入去判断和预估的模型和玩具没什么区别。

但是在编写的过程中也发现很多问题,例如政府之前的披露的数据真的非常少,疫情的相关数据还是多方寻找才找到一部分 。

希望在这次的疫情中保留比较详细的数据:

  • 例如支援的物品的统计,损耗和使用情况等

  • 例如病人的数量对物品的需求等

  • 例如疫情各个时期需要多少的物资统计等

这些都可以作为系统的的输入,借助这些数据,打造一个强大完整的疫情监控和评估系统,甚至不是疫情,而是重大事件的监控和评估系统,待下次再出现疫情、灾情,可以快速的调度全国的资源进行处理和援助。

最后,祝大家春节快乐,多注意个人卫生,带好口罩,不要放松警惕。

作者:wstart

出处:转载自微信公众号 wstart(ID:start_w)

有道无术,术可成;有术无道,止于术

欢迎大家关注Java之道公众号

好文章,我在看❤️

用数据告诉你,新型冠状病毒传染性有多强?相关推荐

  1. 用数据说话:新型冠状病毒传染性有多强?

    码个蛋(codeegg) 第 878 次推文 作者:wstart 链接:转载自微信公众号 wstart(ID:start_w) " 新型肺炎疫情牵动着全国人民的心.截至 2020 年 2 月 ...

  2. 新型冠状病毒传染性有多强?何时达到疫情峰值?来看一下数学和统计建模结果...

    我是夕小瑶,一只热爱科研和AI的小狐狸 来源 | 机器之心(id: almosthuman2014) 引语:在疫情肆虐的这几天里,国内外的流行病学家.统计学家都没闲着,他们基于疫情爆发初期的一些数据建 ...

  3. 新型冠状病毒传染性有多强?何时达到峰值?来看一下数学和统计建模结果

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自机器之心. 机器之心报道 参与:张倩.杜伟 「在家待着就能为国家做贡献」其实不只是一句玩笑话.在疫情肆虐的这几天里,国内外的流行病学家.统计学 ...

  4. 万物皆可建模,来点不一样的知识,新型冠状病毒肺炎的传播预测模型

    前言 随着疫情的不断发展,影响范围不断扩大,波及人数不断增加,此次由冠状病毒引发的病毒性肺炎(COVID-19)已在 2020 年 3 月 12 日被世界卫生组织(WHO)宣布为是一种大流行病.但到目 ...

  5. 上海巴斯德所在新型冠状病毒早期进化机制方面取得进展

    中国科学院上海巴斯德研究所.中科院生物安全大科学中心上海分部崔杰研究组成员魏小曼.李祥等根据目前发表的新型冠状病毒(2019-nCoV)分析结果及公共数据库里上传的基因组比对结果,进行综合分析,推测出 ...

  6. 基于BiGRU-Attention网络的 新型冠状病毒肺炎疫情预测学习记录

    **摘要:**对新型冠状病毒肺炎疫情的准确预测能为疫情防控政策的制定提供重要依据,为此提出基于双向门控循环单元(BiGRU)和注意力机制(AttentionMechanism)的预测模型.考虑到新冠肺 ...

  7. 华医网《新型冠状病毒感染的肺炎防治知识培训》答案整理(2020年2月)

    文章目录 视频1<新型冠状病毒感染的肺炎防控方案(第三版)更新解读(与二版区别)> 视频2<新型冠状病毒感染的肺炎诊疗方案(试行第四版)> 视频3<新型冠状病毒感染的肺炎 ...

  8. 基于大规模结构化病例数据的新型冠状病毒传播特征和感染人群分析

    来源:  专知 本文约510字,建议阅读5分钟 本文详细分析了新型冠状肺炎总体发病性别和年龄分布特点.主要感染原因.潜伏期特点及疫情趋势等特征. 2020 年年初,新型冠状病毒感染的肺炎 (COVID ...

  9. 新型冠状病毒肺炎国内分省分日期从1.16起的全部数据爬取与整理代码(附下载)

    文章目录 一 新型冠状病毒肺炎国内分省分日期全部数据(1.16起): 原始json格式数据下载 csv格式数据下载 二 数据来源与抓取 数据到手流程 三 数据下载与整理成csv 一 新型冠状病毒肺炎国 ...

最新文章

  1. ASP.NET 2.0 正式版中无刷新页面的开发
  2. 中如何刷新当前路由_企业装修和家庭改造中,路由器及接收器如何安放
  3. css 系统自学笔记2017-12-04
  4. 【BZOJ】2289: 【POJ Challenge】圆,圆,圆
  5. shiro 实现自己定义权限规则校验
  6. ubuntu18 安装mysql8安装包_Ubuntu18.04深度学习环境配置
  7. TCP/IP之封装,分用,server模型
  8. 将cron表达式解析成中文,方便客户理解
  9. html批量打印保存到pdf,网页批量打印成PDF,并按条件合并成大PDF、生成页码
  10. 华为人到底几点钟下班?
  11. 阿里RocketMQ创始人首次分享出这份RocketMQ技术内木神级架构手册
  12. Android Studio App开发中多线程的讲解与实现新闻轮播滚动实战(附源码 超详细必看)
  13. C措辞教程第一章: C措辞概论 (5)
  14. 计算机网络最新复习【太原理工大学】
  15. java,android中网络数据获取和json解析
  16. c++ math库函数
  17. 《Consistent Video Depth Estimation》阅读笔记
  18. C语言学习之volatile
  19. ChromeDriver与Chrome版本对应关系
  20. MySQL5.0完全卸载教程

热门文章

  1. c语言OBJECT数组,Objective-C中NSArray的基本用法示例
  2. java 注解入门 简书_Java基础-注解
  3. 勒索病毒再次对能源行业数据安全保护敲响警钟
  4. 国内首家!腾讯云密钥管理系统通过密码应用验证,积极探索行业标准边界
  5. Java十进制转换为二进制的无符号数
  6. pip安装软件 Command “python setup.py egg_info“ failed with error code 1 in
  7. CentOS7服务管理(重启,停止,自动启动命令)
  8. Makefile、多Makefile编译静态库、动态库、SRC实例总结
  9. QT打印窗口、退出、设置字体及颜色、设置时间、控件实现系统函数、添加资源文件(菜单图片)、工具栏添加图片
  10. 141.Linked List Cycle