专栏首页凹凸玩数据最近疯传的SIR传染病模型到底是什么?

最近疯传的SIR传染病模型到底是什么?

以下文章来源于俊红的数据分析之路 ,作者张俊红

本文只讲学术,不讨论其他。

最近看到在网上传的一张SIR传染病模型的图,很多人应该对这个模型不是很了解,今天就讲一下这个模型。

SIR模型是传染病模型中最经典的一个,类似的还有SI和SIS两种。

SIR是三个单词首字母的缩写,其中S是Susceptible的缩写,表示易感者;I是Infective的缩写,表示感染者;R是Removal的缩写,表示移除者。

这个模型本身是在研究这三者的关系。在病毒最开始的时候,所有人都是易感者,也就是所有人都有可能中病毒;当一部分人在接触到病毒以后中病毒了,变成了感染者;感染者会接受各种治疗,最后变成了移除者。

这三者的关系如下图所示:

在病毒最开始的时候S=N,然后S以每天α的速度变到I,I又以每天β的速度变到R,不同时刻t下这三者的关系为:

N(t) = S(t) + I(t) + R(t)
S(t+1) = S(t) - αS(t)
I(t+1) = I(t) - βI(t)
R(t+1) =  R(t) + βI(t)

如果我们想要获取某个时间t对应的S、I、R人数,需要知道α和β值,以及S0和I0值。这个模型可以利用Python实现,具体代码如下:

%matplotlib inline
import scipy.integrate as spi
import numpy as np
import pylab as pl
alpha=1.4247
beta=0.14286
TS=1.0 #观察间隔
ND=70.0 #观察结束日期
S0=1-1e-6 #初始易感人数
I0=1e-6 #初始感染人数
INPUT = (S0, I0, 0.0)
def diff_eqs(INP,t):
    '''The main set of equations'''
    Y=np.zeros((3))
    V = INP
    Y[0] = - alpha * V[0] * V[1]
    Y[1] = alpha * V[0] * V[1] - beta * V[1]
    Y[2] = beta * V[1]
    return Y
t_start = 0.0
t_end = ND
t_inc = TS
t_range = np.arange(t_start, t_end+t_inc, t_inc) #生成日期范围
RES = spi.odeint(diff_eqs,INPUT,t_range)

pl.subplot(111)
pl.plot(RES[:,0], '-g', label='Susceptible')
pl.plot(RES[:,1], '-r', label='Infective')
pl.plot(RES[:,2], '-k', label='Removal')
pl.legend(loc=0)
pl.title('SIR_Model')
pl.xlabel('Time')
pl.ylabel('Numbers')
pl.xlabel('Time')

最后运行上面的代码可以得到如下结果图,上面这张图表示了随着时间t的变化S、I、R人数的一个变化趋势。

这个模型有两个假设条件:

1.一段时间内总人数N是不变的,也就是不考虑新生以及自然死亡的人数 2.从S到I的变化速度α、从I到R的变化速度β也是保持不变的

在实际环境中上面的两个假设一般是不太容易满足的,所以得出来的结果会和实际数据有偏差。

本文旨在科普SIR模型学术学习,这样就不会被学术圈那些看起来高大上理论给唬倒。

本文分享自微信公众号 - 凹凸数据(alltodata)

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

原始发表时间:2020-01-23

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 刷屏的拼多多砍一刀、助力、拼团……都和这个数据模型有关!

    近几年来,我们会发现微信中充斥着拼多多砍价、天猫叠猫猫、助力、拼团等一系列必须要“用户邀请其他用户一同参与”的活动与信息,见了心烦,却无法屏蔽,有时候还要碍于关...

    朱小五
  • 手把手教你利用Python网络爬虫获取链家网的房产信息

    随着人们生活方式的的提高,房子成为了我们必不可少的一部分。而网上的信息太过于复杂,为了了解最近房价的变化趋势。小编以链家这个网站为例,抓取房价的信息。

    朱小五
  • R 可视化 | 华夫饼图

    华夫饼图(waffle chart)分为块状华夫饼图和点状华夫饼图。华夫饼图是展示总数据的组类别情况的一种有效图表。它是西方的一种 由小方格组成的面包,所以这种...

    朱小五
  • 最近疯传的SIR传染病模型是什么?

    最近看到在网上传的一张SIR传染病模型的图,很多人应该对这个模型不是很了解,今天就讲一下这个模型。这一篇只讲学术,不讨论别的。

    张俊红
  • 全面超越BERT、XLNet,中文最强NLP模型百度ERNIE2.0发布!

    今年3月份,百度发布了NLP模型ERNIE初代版本。这个模型刚一出世,便取得了骄人成绩:在中文任务中,全面超越当前最强NLP模型BERT,一度引发业界广泛关注和...

    新智元
  • 知识图谱的设计(一)

    官方介绍:A free, open-source ontology editor and framework for building intelligent ...

    Sheldon.Lee
  • PDO::commit讲解

    PDO::commit提交一个事务(PHP 5 = 5.1.0, PECL pdo = 0.1.0)

    砸漏
  • 独角兽扎堆,IPO密集,2018年金融科技市场将井喷

    日前,科技部公布了2017年独角兽企业名单,中国截止2017年底共有164家独角兽企业(估值超过10亿美元的未上市公司),总估值6284亿美元。金融科技成为诞生...

    罗超频道
  • 【Maven插件】自动生成Mock测试代码

    项目地址: https://github.com/chenhaoxiang/primo

    谙忆
  • AIOHTTP的实战(一)

    aiohttp是基于asyncio和Python的异步HTTP客户端以及服务器,在这里主要介绍aiohttp在客户端应用请求中的案例应用和案例实战。在...

    无涯WuYa

扫码关注云+社区

领取腾讯云代金券