目录

引言:模型术语

1. 基本的SIR模型

2. 基本SIR模型的一个简单实现

2.1 计算出一个事件是否发生?

2.2 运行我们的模型

2.3 人口接触问题

3. 计算感染风险的不同方法

4. 修订后的SIR模型

5. 从分布中取样

6. 运行我们的修订模型

7. 随机模型

7.1 直方图—可能结果的分布

7.2. 基本繁殖数

7.2.1 ​编辑接近1时的爆发动态

7.3 随机模型总结

8. 确定性的模型

8.1 SIR模型的决定性版本

8.2 恢复率和感染时间

8.3 运行确定性的SIR模型

8.4 差分方程和微分方程

8.5 基本繁殖数量和爆发规模

8.6 案例学习:一种类似麻疹的疾病

8.7 案例学习:一种类似水痘的疾病

8.8 案例学习:类似腮腺炎的疾病

8.9 案例学习:类似天花的疾病

9. 拟合SIR模型的数据

10. 通过接种疫苗防止疫情爆发

10.1 基本的繁殖数量和疫苗接种

10.2 疫苗接种

10.3 扩展基本的SIR模型—增加人口统计学的内容

10.4 人口统计和疫苗接种

11 SIR模型的假设


引言:模型术语

传染病模型是动态模型,它们描述了感染如何随时间在人群中传播。

一个模型有一个状态:

它描述了系统在某个特定时间点的所有相关方面(例如,哪些人目前是健康的/生病的)。

一个模型有更新规则:

描述模型的状态如何随时间变化(例如,健康人如何变成病人)。

这些规则通常涉及到参数

这些参数可以被改变,以便根据现实世界的情况校准这些规则(例如,一个典型的人从麻疹或流感中恢复需要多长时间)。

1. 基本的SIR模型

易感性、传染性、恢复性(SIR)模型是最简单的疾病模型之一,在近100年前提出,至今仍是ID建模的基础。

SIR模型根据人们的疾病状态将他们分为三类:

  • 易感性 — 可以被感染
  • 传染性 — 可以感染他人
  • 恢复期 — 不能被感染也不能感染他人

如果我们考虑到我们人口中的一个人,有两种可能的事件会发生在他们身上:

1. 如果他们是易感人群,并且遇到了有传染性的人,他们可能会被感染。

2. 如果他们有传染性,他们可能会恢复。

2. 基本SIR模型的一个简单实现

状态:一个由人组成的人口,每个人都有一个状态或者

初始条件:在第天,9人是易感者(),1人是感染者()。

规则:由于这是一个小群体,我们将假设每个人每天都会遇到其他人。

  • 感染:每次易感者遇到传染者时,他们在第二天有的概率成为传染者。
  • 恢复:感染者在第二天会以的概率恢复()。

参数:

2.1 计算出一个事件是否发生?

感染发生的概率,这意味着什么?如果一个易感者遇到一个传染病人,他们有20%的机会成为病人。或者说,每发生五次这样的接触,平均有一次会导致疾病传播的发生。我们可以在计算机中模拟这个过程,在0和1之间生成一个随机数,eg,

如果小于,我们将说传染已经发生。

2.2 运行我们的模型

每天做以下步骤:

1. 感染:检查每个易感者
        检查和每个感染者之间的每次接触。
                挑选一个随机数
                如果,那么就被感染了

2. 恢复:检查每个感染者
        挑选一个随机数
        如果,则将恢复

3. 如果没有更多的传染病人,则停止。否则,继续到第二天(返回步骤1)。

群体大小:,在时有一个感染者
感染概率(每次接触):
康复概率(每天):(即每个感染者在感染一天后都能康复)。

思考:

  • 如果很低,很高,会发生什么?
  • 如果很高,很低,会发生什么情况?
  • 你能看出这种方法有什么问题吗?

2.3 人口接触问题

接触是如何随人口规模而扩大的?我们通常假设,即使人口规模增加,任何一个人在某一天仍然会遇到大致相同数量的人(我们将这个数字称为c),接触的人的数目并不会随着人口规模增加而扩大。

3. 计算感染风险的不同方法

如果一个易感者与一个传染者接触,他们仍有被感染的概率。因此,每个易感者有一个某一天被感染的概率:

也就是(接触者的数量) x (传播的概率(如果接触者是有传染性的))x(接触者有传染性的概率)。

注意:通常被写成,这是两个人发生有效接触(即足以使疾病传播发生)的人均比率。在这种情况下,

4. 修订后的SIR模型

状态:患有每种疾病状态的人的数量:。注意,

初始条件:在第0天,9人是易感者(),1人是传染者()。

规则:每个时间步骤:

1. 一个易感者被感染的概率为

2. 感染者康复的概率为

参数:

5. 从分布中取样

假设有两个易感者有被感染的风险(概率为)。有三种可能的结果:

现在,我们不是用我们的随机数来确定一个单一的接触事件是否会导致感染,而是用它来计算发生了多少次成功的感染。

6. 运行我们的修订模型

对于每个时间间隔(例如,每一天)。

1. 感染:

  • 计算易感者被感染的概率
  • 计算当日将被感染的易感者人数的分布。
  • 从这个分布中取样,确定第二天有多少易感者会被感染。

2. 恢复:

  • 计算当日将康复的感染者人数的分布。
  • 从这个分布中取样,确定第二天会有多少感染者康复。

3. 如果感染者的数量为0,则停止。

请注意,我们不再需要跟踪每一个人,也不再需要模拟每一个接触事件,我们只需要知道目前有多少人是易感者和传染者。运行有大量人口的模型要快得多。

vs 需要的40个随机数。
vs 需要165,000个随机数。

参数:

7. 随机模型

我们刚才描述的这些模型是随机模型:它们包含了概率的影响。

随机过程是非决定性的,因为一个状态并不能完全决定下一个状态。

每次我们在计算机中运行随机模型时,都会观察到不同的结果。有时爆发,有时不爆发。如果爆发,有时可能很小,有时可能很大。

参数:

很明显,在现实世界中,只有一种可能的未来会发生。随机模型可以帮助我们估计未来事件最可能的顺序是什么。

7.1 直方图—可能结果的分布

哪些结果更有可能或更不可能?

在多次运行一个模型后,我们可以测量爆发(或其他)的各种属性,并使用直方图来显示每种结果的概率分布。

共同感兴趣的属性包括:

  • 疫情的最终规模
  • 疫情高峰时的规模
  • 疫情达到高峰的时间

爆发的最终规模

增加人口规模

在这些爆发中,哪些是可以预测的?哪些仍然是可变的?

7.2. 基本繁殖数

传染病流行病学的一个关键概念是繁殖数R,通常定义为一个典型的原发病例所感染的二级病例的平均数。基本繁殖数是指在完全易感的人群中,一个典型的原发病例所感染的二级病例的平均数。

繁殖数量可以告诉我们是否会发生疫情:

  • 如果R<1,那么疫情就会消亡。
  • 如果R>1,则疫情可能会爆发。

参数:(1个初始感染者;25次模拟)

即使有大量的易感人群被感染,的疾病也很难持续下去。

7.2.1 接近1时的爆发动态

参数:(100个初始感染者;25次模拟)

即使最初的感染者人数比较多(100人),疫情也会逐渐消失。例如,H5N1可以从鸟类传播给人类,但通常不具有人类传播性。

7.3 随机模型总结

随着我们人口数量的增加,偶然性的影响也会减少。如果我们的人口足够大,也许我们可以完全忽略随机性?随机性何时重要?

8. 确定性的模型

随机模型产生潜在结果的分布,决定性模型是对随机模型的一种替代,它基于一组给定的参数和初始条件产生唯一的结果。

与随机模型不同,对于确定性模型的每个状态,只有一个可能的未来状态。

如果我们乐意忽略潜在流行病结果的变异性,我们可以建立一个模型,有效地模拟系统的平均行为。

8.1 SIR模型的决定性版本

状态:分别为t时刻易感、感染和康复人数。
规则:我们使用数学函数来指定时刻t时系统状态在时刻时的变化。按照惯例,我们经常说,然后我们选择它的长度(例如,1天,1周,6小时,等等)。

参数:现在是有效接触率(人均)和恢复率。

8.2 恢复率和感染时间

速率的倒数是某事发生前的平均时间,所以是某人被感染的平均时间长度。

例如,如果康复率是天,那么我们将期望一个受感染的人每四天就会有一次康复。

或者说,在任何给定的一天,我们将期望的受感染人口能够康复。

8.3 运行确定性的SIR模型

注意:与随机模型不同,每次我们运行确定性模型都会得到完全相同的结果。

8.4 差分方程和微分方程

注意:模型通常描述每个隔间中的人口比例;即

8.5 基本繁殖数量和爆发规模

还可以让我们估计在疫情结束时人口中被感染的比例,即 final attack rate:

8.6 案例学习:一种类似麻疹的疾病

8.7 案例学习:一种类似水痘的疾病

R0影响顶峰

8.8 案例学习:类似腮腺炎的疾病

8.9 案例学习:类似天花的疾病

9. 拟合SIR模型的数据

10. 通过接种疫苗防止疫情爆发

疫苗接种可以保护人们的一种方式是防止他们被感染;这相当于把他们从S区移到R区。

10.1 基本的繁殖数量和疫苗接种

繁殖数的另一个重要特性是,它允许我们估计人口中需要接种疫苗的部分,以防止疫情发生

防止爆发所需的覆盖率随增加。

10.2 疫苗接种

10.3 扩展基本的SIR模型—增加人口统计学的内容

SIR模型的假设是,人口的规模和组成在一段时间内是固定的:没有人进入或离开。

这个假设适合于单一的爆发(例如,流感)。但对于研究一种疾病在几年或几十年内的长期行为就不太合适了,因为死亡和出生会导致大部分或全部人口被替换。

在这个模型中,我们假设人们出生时的易感率为,无论他们的疾病状态如何,都以相同的速度死亡,而且人口的规模将随着时间的推移保持不变。

注意:第一条Y轴已经被截断,第一次爆发的高峰是~76,000个感染性病例。

Caution!

放大从第4,500天到第6,500天的时间段。

在这个例子中,我们看到,在每次爆发之间,感染者的数量下降得很低。我们的人口有多大?在两次爆发之间的低谷期,有多少人具有传染性?如果少于一个人具有传染性,疾病就会被消除。但模型并不知道这一点

10.4 人口统计和疫苗接种

一个更详细的模型,其中一部分新生儿从疫苗接种中获得免疫力的

11 SIR模型的假设

同质化人口:每个人都是一样的;

同质化混合方式:每个人都有相同的接触机会。

随机模型:

更多的计算更适合于小群体(或少量的感染者)。

提供关于结果分布的信息。

确定性的模型:

运行效率更高——可以探索更多的参数;

分析可以提供更普遍的见解;

只有在某些条件下才适用(更大的人群,更多的传染病人)。

ODE模型的优点

- 计算量小,相较于 computational (agent-based,ca 等),ODE 的方式只需要从宏观层面进行模型的定义和计算,而不需要关注每一个个体如何变化
- 直观的观察模型 behavior;CA 或者 ABM 等方式都没有办法直接通过观察系统的 behavior(例如SIR 系统中感染的人数,他们只能通过对个体的统计来得到间接的 system behavior)
- 基于大规模的数据假设,结果更加具有普遍性(使用 ODE 模型的前提是基于足够多的数据,只有这样,才能引入统计相关的方法进行问题研究)因此结果往往更具有普遍性
- 能够体现变量之间的动态变化关系

复杂系统学习(四):ODE模型II:流行病相关推荐

  1. 强化学习(四) - 无模型学习(MC、TDL)

    上一节讲的是在已知模型的情况下,通过动态规划来解决马尔科夫决策过程(MDP)问题.具体的做法有两个:一个是策略迭代,一个是值迭代. 从这一节开始,我们将要进入模型未知的情况下,如何去解决MDP问题. ...

  2. 系统学习机器学习之模型诊断与调试

    实际上,这个问题,或多或少,在之前的总结中,有所涉及,在学习了那么多的理论之后,此篇作为一个2015年的技术提升总结.毕竟,在实战中,理论只能作为方向指导. 实在不高兴自己去写(虽然,完整的自己梳理一 ...

  3. 系统学习机器学习之模型选择

    1 问题 模型选择问题:对于一个学习问题,可以有多种模型选择.比如要拟合一组样本点,可以使用线性回归,也可以用多项式回归.那么使用哪种模型好呢(能够在偏差和方差之间达到平衡最优)? 还有一类参数选择问 ...

  4. 复杂系统学习(六):细胞自动机II:实现一个模型

    目录 1. 引言 2. 模型的实现 3. 应用:Lotka-Volterra 3.1 Lotka-Volterra模型的CA版本 4. 应用:流行病 4.1 SIR疾病模型的CA版本 4.1.1 SI ...

  5. 系统学习深度学习(四十一)--AlphaGo Zero强化学习原理

    转自:https://www.cnblogs.com/pinard/p/10609228.html 本篇主要参考了AlphaGo Zero的论文, AlphaGo Zero综述和AlphaGo Zer ...

  6. FPGA 之 SOPC 系列(四)NIOS II 外围设备--标准系统搭建

    FPGA 之 SOPC 系列(四)NIOS II 外围设备--标准系统搭建 今天给大侠带来今天带来FPGA 之 SOPC 系列第四篇,NIOS II 外围设备--标准系统搭建,希望对各位大侠的学习有参 ...

  7. 知乎高赞回答:是否有必要系统学习概率图模型?

    概率图模型(PGM)是用图来表示变量概率依赖关系的理论.自被图灵奖获得者Pearl提出以来,已成为不确定性推理近10年的研究热点,在统计机器学习.语音识别.计算机视觉和自然语言处理等领域有广阔的理论研 ...

  8. 系统学习深度学习(三十九)--基于模型的强化学习与Dyna算法框架

    转自:https://www.cnblogs.com/pinard/p/10384424.html 在前面我们讨论了基于价值的强化学习(Value Based RL)和基于策略的强化学习模型(Poli ...

  9. AVI音视频封装格式学习(四)——linux系统C语言AVI格式音视频封装应用

    拖了很久的AVI音视频封装实例,花了一天时间终于调完了,兼容性不是太好,但作为参考学习使用应该没有问题.RIFF和AVI以及WAV格式,可以参考前面的一些文章.这里详细介绍将一个H264视频流和一个2 ...

最新文章

  1. 自作的WM文件浏览器
  2. leetcode算法题--反转链表 II★
  3. 如何设计一个安全的登录流程
  4. android组建之间通信_Android各组件/控件间通信利器之EventBus
  5. layer 弹出层 回调函数调用 弹出层页面 函数
  6. 计算机实数表示法---浮点数(二)
  7. 测控技术与仪器是计算机相关的,测控技术与仪器专业
  8. 怎样解决An internal error has occurred. Index out of bounds
  9. 又给人家当分母了,顺便介绍一下GIS领域的顶级国际会议
  10. JavaScript第6章上机练习2(使用jQuery美化英雄联盟简介页)上机练习3(制作非缘勿扰页面特效)
  11. 力扣刷题 | 二叉树专题
  12. 想要与北上争雄,深圳还有哪些课要补?| DT城数
  13. 基于Java Socket的局域网聊天系统
  14. 如何统计自己写的代码量
  15. Python学习之求绝对值的几种方法
  16. 基于python下django框架 实现校园失物招领系统详细设计
  17. vlc android局域网rtsp,VLC mosaic分屏显示多路RTSP媒体流问题。
  18. rJava install error “JAVA_HOME cannot be determined from the Registry“
  19. 《为何家会伤人》| 不懂爱的误区和真相
  20. ms10-002“极光漏洞”漏洞复现

热门文章

  1. openJDK源码下载及阅读
  2. 申宝策略-A股三大指数纷纷高开
  3. 飞剪程序、追剪程序plc程序伺服程序 几年前的飞剪追剪程序,用的都是汇川系列
  4. 用Python做动态时钟
  5. 微信用什么留住用户量?
  6. [ 网络安全基础篇 ]常见 Web 漏洞的描述及其修复建议(相对全面)
  7. c语言各常用函数,c语言常用函数速查手册 pdf
  8. docker挂载内容与容器内容不同步(有时候延迟同步)
  9. Linux Shell获取文件夹下的文件名
  10. 计算机二级考试ms包括什么,计算机二级ms office考试考什么内容?