dpoqb / netlogo_SEIR_2019

流行病传染模拟仿真程序

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SEIR传染病模型netlogo仿真程序

2019年年底,一场突如其来的传染病席卷**湖北武汉,新型冠状病毒感染的肺炎疫情悄然蔓延,从武汉波及全国,牵动人心。受到B站某UP主仿真程序的启发, 想通过计算机仿真实现一个更加真实的病毒传播仿真模型,下面是我的仿真模型的基本介绍和模型演示。

1、SEIR模型

图片来源:知乎-信号处理工程师的日常

SEIR模型在SIR模型的基础之上新增加了一个潜伏者(Exposed),这和新冠病毒实际情况更加符合,易感染人群在一开始会经历潜伏期,一段时间之后才出现症状,李兰娟院士认为:潜伏期患者也有可能具有传染性。潜伏者按照一定概率转化为感染者,因此,SEIR微分方程为:

SEIR微分方程

上式中α对应的感染概率,β对应的是潜伏者转换为感染者的概率,γ对应的治愈概率,r是接触的人数。该方程实质上反映的是易感染者S(t)、潜伏者E(t)、感染者I(t)、康复者R(t)单位时间变化数量的随时间t的变化情况,它们之间会相互影响,下面为迭代形式:

SEIR迭代方程

2、模型假设

  • 新型冠状病毒主要的传播途径还是呼吸道飞沫传播和接触传播,气溶胶和粪—口等传播途径尚待进一步明确。通过流行病学调查显示,病例多可以追踪到与确诊的病例有过近距离密切接触的情况,因此,模型假设只有接触传播一种传播途径。
  • 为了简化模型,模型假设感染者不会死亡,只会传染其他易感染者或者被隔离并治愈。
  • 模型假设康复者体内含有抗体,不会再感染病毒。
  • 模型假设潜伏者没有被收治,感染者会被收治,被收治的感染者会一直占用医院隔离区域
  • 模型假设被隔离的感染者无法再感染其他人
  • 模型假设患者只能通过医院收治再被治愈

3、模型参数

参数 说明 类型
population 总人数 整数
hospital-patient-segregation-area 医院隔离区域 整数
human-flow-range 人们的活动最大范围 整数
infection-rate 感染概率 浮点数
transform-rate 潜伏者转换为感染者的概率 浮点数
recovery-rate 康复概率 浮点数
initial-infectious-num 初始感染人数 整数
latent-time 潜伏期 整数
receive-cure-response-time 开始收治病人的延迟时间 整数
receive-rate 收治效率 浮点数

4、模型运行

我以“为什么要进行自我隔离”问题为例来演示模型的运行,也可以通过web版模型在浏览器中自行尝试其他实验。 假设有以下三种情形:a、人们都满世界乱跑、b、人们每天只见街坊邻居、c、人们宅在家只和家人呆在一起

这三种情形通过human-flow-range参数来模拟,human-flow-range是相对每个人家庭位置的活动范围,abc分别对应human-flow-range的值为50、10、2。下面为各主体人数变化情况

a:human-flow-range = 50

b:human-flow-range = 10

c:human-flow-range = 2

通过对比仿真绘图发现,人们如果不进行隔离而去接触许多人的话,被感染的人数峰值会大很多而且会提前,如果大家都减少活动范围,自己宅在家中,潜伏者和感染者那两条线就几乎消失了,这就是为什么说,在病毒蔓延之际,采用自我隔离的方法是控制疫情最有效的措施之一。

5、模型优化

该仿真模型基本符合SEIR模型的运行结果,并且设置一些基本参数,实际上还可以对模型进行优化,实现一些更加复杂的仿真,比如:

  • 已经发现,各个年龄段的人都可能被感染新冠病毒,被感染的主要是成年人,其中老年人和体弱多病的人似乎更容易被感染。儿童和孕产妇是新型冠状病毒感染的肺炎的易感人群。模型需要提现出不同的人群之间的差异,比如这里所说的“年龄”
  • 本模型人口分布采用的是随机分布,还可以构建更加复杂的人口分布,比如不同密集程度的人口分布,人口越密集的地方,像城市,病毒蔓延的速度会比人烟稀少的地方更快一些

About

流行病传染模拟仿真程序


Languages

Language:HTML 99.7%Language:NetLogo 0.3%