赞
踩
目录
写在前面:
需要源代码的小伙伴可以移步到我的GitHub仓库https://github.com/moyuweiqing/SEIR-Model-extension 中进行获取,如果觉得我的文章或代码帮助到你的话,不妨在文章或GitHub代码中给我点个赞,谢谢大家!
SEIR传染病模型是一个在数据建模中常见的基础模型,其中分为以下四类人群:
S (Susceptible),易感者,指缺乏免疫能力健康人,与感染者接触后容易受到感染;
E (Exposed),暴露者/潜伏者 ,指接触过感染者,在还未发病或发生症状的人,可用于存在潜伏期的传染病;暴露者可以有传染性,具体取决于模型和传染病本身情况;
I (Infectious),患病者,指有传染性的病人,可以传播给 S,将其变为 E 或 I ;
R (Recovered),康复者,指病愈后具有免疫力的人;康复者可以终身免疫,或者是受到二次感染。
图1 SEIR模型人群转化图
其基本公式如下:
此模型无解析解,给定指定的参数可求数值解。
图2 SEIR模型
在这里,假定患病者(Infectious)在患病期间有概率康复或死亡,设定死亡率为;则在患病期间,患者可以转化为康复者(Recovered)和死亡者(Dead),则延伸为SEIDR模型,其微分公式如下:
此时,日死亡率为,日治愈率为,该传染病的致死率为 。例如,日死亡率=0.02,日治愈率为=0.10,该传染病的致死率为 = 0.02 / ( 0.02 + 0.10 ) * 100% = 16.7%
python的模型微分代码如下:
- ds_dt = - lamda * beta * s * (i + e) / n
- de_dt = lamda * beta * s * (i + e) / n - alpha * e
- di_dt = alpha * e - gamma * i - delta * i
- dd_dt = delta * i
- dr_dt = gamma * i
此时,模型的效果图如下:
图3 SEIDR模型
引入疫苗(vaccine)的接种影响因素,接种疫苗可以直接反映在SEIDR中的感染率、死亡率、康复率,影响传染病的致死率 数值情况。具体的影响可以基本分为以下四种情况作进一步讨论:
引入该变量后,模型的基本微分公式如下:
其中,是对应的是未接种疫苗、接种一剂疫苗和接种两剂疫苗的情况,、、分别是不同疫苗接种情况的易感人群、潜伏者和感染者,、、分别对应不同疫苗接种情况下各个人群的患病率、康复率、死亡率。表示一剂疫苗的日接种率和二剂疫苗的日接种率。
具体的一个样例如下:
- ds0_dt = - lamda * beta0 * s0 * i_e / n - v1 * s0
- ds1_dt = - lamda * beta1 * s1 * i_e / n + v1 * s0 - v2 * s1
- ds2_dt = - lamda * beta2 * s2 * i_e / n + v2 * s1
- de0_dt = lamda * beta0 * s0 * i_e / n - alpha * e0
- de1_dt = lamda * beta1 * s1 * i_e / n - alpha * e1
- de2_dt = lamda * beta2 * s2 * i_e / n - alpha * e2
- di0_dt = alpha * e0 - gamma0 * i0 - delta0 * i0
- di1_dt = alpha * e1 - gamma1 * i1 - delta1 * i1
- di2_dt = alpha * e2 - gamma2 * i2 - delta2 * i2
- dd0_dt = delta0 * i0
- dd1_dt = delta1 * i1
- dd2_dt = delta2 * i2
- dr_dt = gamma0 * i0 + gamma1 * i1 + gamma2 * i2
此时,模型的效果图如下:
图4 SEIDR_V2t模型
在传染病影响情况较为严重的情况下,政府会进行管控,政府通过不同的手段和措施进行管控,其不同的手段和措施会影响某一些参数。例如,如果政府通过采取措施限制人员接触,其在模型中会直接影响到单位时间内受感染者接触的易感人群数量,在政府采取限制人员接触的措施后,的数值会降低。
具体案例如下:
- if t < 30: # 从第30天开始限制人员接触
- r = 5
- else:
- r = 2
此时,模型的效果图如下:
图5 SEIDR_G模型
考虑病毒变异的影响,在传染病的传播过程中,病毒会发生变异,使得其传染性和致死率会发生变化。例如在本次Covid-19的疫情影响中,从最开始的毒株,后面变异到传染性更强的德尔塔毒株,以及后面的奥密克戎毒株,其传染性逐渐变强,而其致死率反而逐渐降低。因此,在时间维度上引入病毒变异的情况,其在模型中会直接影响到感染率和致死率。
具体案例如下:
- if t >= 30 and t <= 60: # 从第30天开始病毒发生变异
- beta = beta * 1.2 # 传染性增强
- delta = delta * 0.8 # 致死性降低
- elif t > 60: # 第二次变异
- beta = beta * 1.5 # 传染性进一步增强
- delta = delta * 0.5 # 致死性进一步降低
此时,模型的效果图如下:
图6 SEIDR_C模型
后续文章:
【Python数学建模】SEIR传染病模型模型延伸-SEIDR模型(二),加入外部输入等因素的影响,延伸模型_moyuweiqing的博客-CSDN博客
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。