美文网首页
疫情模型

疫情模型

作者: Rich070 | 来源:发表于2020-01-29 02:33 被阅读0次

前几日做的是关于第二天新增确诊病例的预测,但是发现那个实在是太简单了,因为疑似病例中最后被确诊成肺炎的比例基本是不变的,在excel上把数据点画上去,然后画一条最优拟合线就完事了。

昨天突然意识到,自己其实有能力做一个关于疫情整体情况的模型,所以今天就动手操作一下。

模型

这次模型中有五类人:

    S- suseptible(可感人群)

    I- infectious(可以感染他人,但是由于种种原因没有被隔离,比如处于潜伏期,或者病情较轻,没有放在心上等。没有任何官方的数据来表明这类人的数量)

    D - diagnosed(被确诊而且被隔离,无法传染其他人。官方对于这类人的数量有明确的数据)

    R - recover(病情好转出院,获得免疫能力,无法被再次感染)

    DT - death(由于病重,不幸死亡)

有四个变化率:

    \alpha I -  每天被感染的人数

    \beta I - 每天被隔离治疗的人数

    \gamma D - 每天病情好转出院的人数

    \epsilon D - 每天死亡人数

接下来,我们可以写出他们变化率的表达式:

这一次我们只关注ID这两个量,不去计算疫情结束时的死亡和康复人数(如果想知道这两个量的话,看看死亡率和康复率的相对大小就知道了 ------ 人最后要么康复,要么死亡。按照现在的数据,如果不及时开发出新的治疗方法的话,后果真的很严重)

参数

好,接下来我们来看看如何确定这四个参数。

最好估计的就是\gamma (康复率)和\varepsilon (死亡率)。根据丁香园的数据,

\varepsilon  = 106/4565 = 0.0232

\gamma =62/4565 = 0.0135

对于\alpha\beta,我们可以做以下推导:

这里我们可以得到的量只有D_{t+1}D_{t}。也就是说,对于相同的CD_{t-1}-D_{t}\beta ,\alphaI_{t-1}可以有不同的解。不同的参数对应的模型肯定不一样,但是好在不是所有的模型都是最好的,我们可以想办法通过先找到最符合现实的模型,反过来求出这些参数值,然后使用通过这种方法求出的参数来进行预测。

思路:

\alpha,\beta和起始的I必须先确定其中的两个,才能求第三个值。那么先确定哪个呢?

\alpha和\beta是最难估计的了,那么我们就先确定初始的感染人数吧。新型冠状病毒的潜伏期的平均值有的专家说是10天,有的说是7天,我们选择保守一点的估计,7天。也就是说:

                                                                I_{initial} = D_{initial  }\div \frac{1}{7}

第二个参数我们选择\beta\beta的取值范围应该在0-1之间,如果大于1,那么就是说同一批人在感染了另一批人之后的同一天住进了医院,这明显不符合事实,那么我们就可以用暴力的方法,将0-1的值遍历一遍,每一遍都求一个最优的\alpha,最后看看当\beta取哪个值的时候这三个参数是最优的

公式推导:

D关于\alpha的导数:

设置损失函数并对\alpha求导:

\alpha更新公式:

其中theta是学习率(learning rate)  

代码实现:

模拟每天的变化:

计算损失:

更新\alpha

数据:

在建模的过程中最令我头疼的的就是数据了,搜遍了全网也也没有发现任何一家媒体把疫情的历史数据整理公开,虽然丁香园提供了历史数据图,但是并没有把所有的数据公开......

只有国家卫生健康委员会和央视新闻从1月19号开始每天播报确诊人数(可以从丁香园的实时播报查到:https://3g.dxy.cn/newh5/view/pneumonia_timeline?whichFrom=dxy)。也就是说,1月19号之前的数据要么根本就没有,要么就不可信......疫情可是从去年12月就开始了呀。

不管了,姑且先用这些数据吧

测试

初始化:

第一天(1月19号)的D(确诊人数)是291,假设潜伏期为7天,那么I就是2037。I和 \beta的取值先随便取,后面还要遍历搜索

遍历搜索:

看来当初始I = 2097,D = 291, 且\beta=0.02的时候,模型输出和真实数据拟合的是最好的。接下来把最好的\alpha也求出来吧。(在运行代码之前还要再初始化一遍)

我们知道,当\alpha - \beta大于0的时候,确诊人数会成指数上涨,现在看来情况依然不是很好啊

把最后拟合出来的图画出来康康:

嗯,看起来拟合的不错,模型的可信度还是有一些的

由于这世界上还没有没有任何关于I的数据,让我们用建好的模型来估计一下I的大小和历史变化吧

注意:这个结果是基于:模型结构没有问题,数学推导没有问题,数据没有问题,各种假设没有问题,初始人数没有问题等等才得到的。因此这张图仅供参考,本人无意制造恐慌。

根据模型输出的结果,截止到1月26号,已经有5万多人被感染了,只是这5万多人由于各种各样的原因没有被检测出来。大家要注意保护好自己呀,现在被确诊的人数可能仅仅只是所有被感染人群的冰山一角

至于什么时候情况会好转呢?现在从模型输出的数据上来看还没有好转的迹象,但是从丁香园的数据来看,疑似人数的增长已经放缓了

而且钟老已经放出话了:

也许明天就是转折点呢!

--------------------------------------------------2月5日更新

上面的求导和代码有些错误:

1)求导的时候少乘了个负1

2)代码也写的有问题,改正过代码在这里:

相关文章

  • 疫情模型

    前几日做的是关于第二天新增确诊病例的预测,但是发现那个实在是太简单了,因为疑似病例中最后被确诊成肺炎的比例基本是不...

  • Logistic模型拟合COVID-19疫情以及Python实现

    本文首先介绍了Logistic模型的原理,然后尝试用Logistic曲线拟合疫情,虽然疫情已经接近尾声,模型的预测...

  • 基于SIR模型的疫情预测模型

    备注:此文仅在有限信息的基础上,对当下的疫情提供数学建模思路。博主非相关医学、传染学等专业研究者,因此对模型的适用...

  • 基于Logistic模型的新冠疫情预测模型

    本文主要介绍通过以Python为工具,首先编写爬虫爬取网络数据,获取疫情数据,然后使用Pandas和matplot...

  • 与疫情有关的模型

    1.扩散的传播曲线(“S曲线”)模型 2.SIR 模型 SIR模型是传染病模型中最经典的模型,是传播过程的抽象描述...

  • logistic算法在新冠病毒预测中的应用

    一、Logistic预测算法介绍 根据Logistic增长模型来预测新冠肺炎疫情。Logistic增长分为指数...

  • #特种兵思维模型#5.5

    特种兵思维模型解决的问题是:怎样在竞争中获胜? 这样的思维模型,尤其在疫情尚未过去、经济形势大受打击之下,对我们想...

  • 2020-02-28

    今天继续关心疫情。中午和儿子吃饭听早间新闻,钟南山院士27日表示,根据模型预测,有信心在四月底基本控制疫情。 贵州...

  • 微蓝思维模型——行动

    涵雪复盘 【标题】微蓝思维模型——28/100 国家疫情,韩国那边也疫情,还飞速上升,这两天心里惦记着父母,体会到...

  • #教育增长圈# 薛小笛作业day2 拆解案例:新商业女性支援武汉

    ----2组-薛小笛 拆解案例:新商业女性支援武汉公益共学营 一、营销模型 1.1案例背景: 武汉疫情爆发以来,不...

网友评论

      本文标题:疫情模型

      本文链接:https://www.haomeiwen.com/subject/yckvthtx.html