基于Anylogic的传染病扩散模型仿真与建模——以SEIR模型为例
基于Anylogic的SEIR模型建模与仿真
SEIR模型描述
SEIR由下面四个阶段构成。
susceptible:易得病的
exposed:暴露的(已得病 ,处于潜伏阶段)
infectious:感染的
recovered:复原的(不会再复发)
我们要建立一个模型来显示传染性疾病在大量人群中的传播情况 。 一个人群有10000人 (TotalPopulation) 其中 一个人具有传染性 。
- 传染阶段每人每天平均接触1.25人 (ContactRatelnfectious=1.25),如果感染者 (I) 与 易感 者 (S) 接触, 则S的感染概率为0.6(Infectivity=0.6)。
- 感染后感染潜伏期 持续10天 (AveragelncubationTime=10);用 exposed 来描述处于潜伏阶段 (E) 的人 。
- E阶段结束后 进入传染阶段 (I) 此阶段持续15天(AverageIllnessDuration= 15) 。
- 从疾病中康复的人免疫第二次感染。
用系统动力学方法建模
存量和流量
在系统动力学中,存量也称为水平 、积累或状态变量,代表了真实世界中的材料 、 知识 、 人群 、 货币等 。 流量定义了它们的变化率,即存量的值如何变化,从而定义了系统的 动态特性 。
通过从菜单中选择文件 →新建 →模型命令来创建一个新模型,并将其命名为 SEIR 。 选择天作为模型时间单位 。
建模过程
从系统动力学面板中将四个存量拖拽至图纸中,将其分别命名为
Susceptible,Exposed,Infectious 和 Recoverd 。
- 从Susceptible 存量中流入Exposed 存量 。双击流量要流出的存量Susceptible 并单击流量要流入的存量( Exposed )。
- 添加一个从Exposed 流向 Infectious 的流量,并将其命名为InfectiousRate 。
- 添加从Infectious 流向 Recoverd 的流量,并将其命名为RecoverdRate 。
添加5个参数对象,设定初始值和附属链接
- 添加5个参数对象
- 初始值和附属链接设定。
注意: Totalpopulation 和 Susceptible之间应该设定一个附属链接。
为ExposedRate流,InfectiousRate流和RecoverdRate流定义公式
- 为ExposedRate流定义公式。
- 为InfectiousRate流和RecoverdRate流定义公式。
仿真结果
运行模型并通过变量的检查窗口观察其动态特征。双击变量即可打开
变量的检查窗口。
添加图表来显示动态过程
从分析面板中将时间折线图拖拽到图纸中。在属性中,修改数据项的属性并且添加数据项。
运行模型
敏感性分析
右击Main新建实验。
点击完成,然后点击属性修改其名称。
考虑接触率变化对感染人数的影响,单击Infectious存量右击,选择创建数据集,然后点击属性。
时间窗设定为300以及其他参数设定。
运行SEIR/ ContactRateVariation