专栏首页WOLFRAM新冠病毒Logistic增长模型:中国+钻石公主号游轮

新冠病毒Logistic增长模型:中国+钻石公主号游轮

Rimmer 博士是一位退休的心脏病专家,自1988年以来一直使用Mathematica。他对数学统计,金融市场,全球定位系统,信息知识和医学感兴趣;他在 Mathematica Journal和Wolfram演示项目上发表了很多文章。

新型冠状病毒的资源&更新(中国、美国、全世界的数据):https://wolfr.am/coronavirus

Logistic增长模型

逻辑 (Logistic) 增长由一个微分方程定义:

f(t)/t==k f(t) (1-f(t)/L)

其中k是一个连续增长率,L是增长的界限,也就是说f(t)不能超过L。当f(t)与L小相关,则(1-f(t)/L)接近于1。初始增长与带指数增长率k的f(t)成比例。当f(t)到达L,增长率为0,增长结束。如果我们要求L和k为正数,则增长率总是正的。

这个模型最开始用于人口增长,概念是有一个空间可以支持的最大人口L,在这个空间中人口不能增长超过这个最大值。在传染病的流行病学控制中,有一个类似的模型,用于限定感染和潜伏人口,这样这些人口就不能向更大数量的人群传染疾病。在疾病爆发的初期,这个过程需要花费时间来完成,因为不能很好的掌握潜伏者的人口数量。但是主要概念是限制传染者和潜伏者,将他们隔离起来,这样的话L就会比未接触疾病的人口数量小很多。接触者互相隔离也很重要。如果控制的好,那么病毒可以传播的人口则会非常有限。如果传染不能接触到所有人群,那么病毒的易传染级别就没有那么重要。如果没有做好隔离,那么在有限空间内,比如在没有乘客可以下船的游轮上,传染的风险就会增加。

这个可以简化:

这证明了微分方程的解。

边界条件,f(t0) == L/2,将t0设为增长率最大的传染点。

函数给出了一个Sigmoid生长曲线,也显示了一阶导数。

有了参数替代,Logistic增长函数变成了LogisticDistribution函数。

数据源

https://github.com/CSSEGISandData/COVID-19/tree/master/csse_covid_19_data/csse_covid_19_time_series

数据也可以用ResourceData["Epidemic Data for Novel Coronavirus COVID-19"]找到;GitHub数据好像也是一样的。对于模型来说,GitHub数据的格式更简单。

假设当每天病例降至最后的整数值就标志着这个流行病结束,这样流行病计算也就结束了。图中的红点显示了在一阶导数曲线上的当前点。二阶导数曲线也在图上显示。

假设当每天病例降至最后的整数值就标志着这个流行病结束,这样流行病计算也就结束了。图中的红点显示了在一阶导数曲线上的当前点。二阶导数曲线也在图上显示。

下一个部分不包括湖北省的数据,这些数据中确诊病例技术方法有时基于临床诊断而非实验室判断。还不是很清楚数据库是否随着确诊而更新。但是不管如何其他省份的数据,体量都小得多,而且更匹配这个模型。

假设当每天病例降至最后的整数值就标志着这个流行病结束,这样流行病计算也就结束了。图中的红点显示了在一阶导数曲线上的当前点。二阶导数曲线也在图上显示。

钻石公主号游轮

游轮上显著更大的k和更晚的t0说明相比起让健康的人下船并隔离疑似和感染者而言,限制下船可能引起更多人被感染。

用微分方程拟合数据

这个列表计算了基于微分方程f'[t]==k f[t] (1-f[t]/L)的一阶导数,直接使用数据:

现在我们获取了t0。

这个图比较了拟合和原数据。

我很惊讶这个方法会提供这样一个精确的拟合,因为Accumulate[]并不是一个非常精确的数值积分法,但是导数都在数据点计算,所以这是一个黎曼中点积分,且加到每个点的系统性错误应该是一阶导数点除以2L的数量级,如下所示。

参数可以用数据的微分公式求出这件事说明,数据并不是被生硬地塞进一条曲线,数据背后的理论也嵌入了数据。如果随着数据增多这个预测依然成立,这就会是一个非常有用的模型。

Q:

如果使用数据中的一部分,比如湖北省的数据,这个Logistic模型就会给出非常不同的结果。比如,假设现在是爆发后的第20天。如果我们使用头20天的可用数据,得到的模型并不能预测接下来的16天发生的情况。

A:

这个流行病开始时候的数据可能并不是很准确。有一些基本的数值上的原因:在早期的数据的信息中只有2位或3位有效数字,而后来的数字精度更高。但是最主要的原因是,早期的数据可能不是很准确,尤其是在湖北,那些实验室的数据很快就被取代。在中间的某个时候就不再用实验室数据了,WHO处的信息说明这些死亡病例数量只是实验室确认的病例。后面他们又一次性地加上了其他死亡病例数据,导致累计数据大幅上升。现在应该尝试使用最近的数据,这些数据又更多信息并且更加精确。并随着数据累计看一看连续拟合情况。

然后用ListPlot看连续参数,看看这些参数是否随着时间的推移可以稳定。给NonlinearModelFit一些合理的起始参数也是个不错的想法。

Rimmer 博士还对意大利和韩国的疫情进行了分析:

https://community.wolfram.com/groups/-/m/t/1887823

中国模型的更新:

https://community.wolfram.com/groups/-/m/t/1890271

在 Wolfram 社区文章的底部点击"Make Your Own Copy"便可在 Wolfram 云端以笔记本形式查看并运行,同时可下载到桌面变成本地笔记本。

本文分享自微信公众号 - WOLFRAM(WolframChina),作者:Robert Rimmer

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 用Mathematica提高英语写作水平

    WolframChina
  • 喜欢生物的亲们看过来!!!!今天给大家建立一个好玩的生物链~~~~

    WolframChina
  • 12.1版本中的全新数据交互控制和格式选项功能

    Stephen Wolfram在他的博客中宣布了Mathematica 12.1版本的正式发行,提到了Dataset相关的更新,以便我们更便捷地研究、理解和演示...

    WolframChina
  • SYSAUX表空间管理及恢复

    SYSAUX表空间是在10g之后引入的一个新的表空间,主要用于减轻对SYSTEM表空间的压力而作为SYSTEM表空间的辅助表空间。

    Leshami
  • Layui常用方法

    layui中的input radio单选框监听选择触发事件: 根据给input绑定的 lay-filter 进行查找input,然后进入函数判断 ...

    二十三年蝉
  • “移花接木”偷换广告:HTTPS劫匪木马每天打劫200万次网络访问

    近年来,国内各大网站逐渐升级为HTTPS加密连接,以防止网站内容被篡改、用户数据被监听。但是一向被认为“安全可靠”的HTTPS加密传输,其实也可以被木马轻易劫持...

    FB客服
  • 前端基础知识概述 -- 移动端开发的屏幕、图像、字体与布局的兼容适配

    前端的一大工作内容就是去兼容页面在不同内核的浏览器,不同的设备,不同的分辨率下的行为,使页面的能正常工作在各种各样的宿主环境当中。

    Sb_Coco
  • JVM系列五(javac 编译器).

    我们都知道 *.java 文件要首先被编译成 *.class 文件才能被 JVM 认识,这部分的工作主要由 Javac 来完成,类似于 Javac 这样的我们称...

    JMCui
  • 深度学习装机指南:我们为普通青年和土豪准备了两套方案

    深度学习,始于装机。 王新民 友情贡献 量子位 出品 | 公众号:QbitAI 研究深度学习该买一台什么样的电脑?我的笔记本能满足需求吗? 量子位请来小伙伴,为...

    量子位
  • Fast Refresh 原理剖析

    关注「前端向后」微信公众号,你将收获一系列「用心原创」的高质量技术文章,主题包括但不限于前端、Node.js以及服务端技术

    ayqy贾杰

扫码关注云+社区

领取腾讯云代金券