-
Notifications
You must be signed in to change notification settings - Fork 43
/
Copy path28TheSIRSmodel.rmd
136 lines (117 loc) · 11 KB
/
28TheSIRSmodel.rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
---
title: "28TheSIRSmodel"
author: "李林杰"
date: "2021/10/15"
output:
word_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## R Markdown
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.
When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
```{r cars}
summary(cars)
```
## Including Plots
You can also embed plots, for example:
```{r pressure, echo=FALSE}
plot(pressure)
```
Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.
## 常见的传染病模型(四)——SIRS模型
(一)背景及介绍
----
研究发现,社会网络与流行病传播之间存在着一定的联系,主要体现在:流行病的传播,其中 部分是通过人与人之间的接触进行的,这种接触模式可以用网络来表示。通过研究网络结构和疾病动态之间的联系,我们可以更好地理解流行病的传播模式。但要想完全了解疾病是如何在人群中传播的,我们需要考虑到大量生物学因素,这极其复杂,也并不现实。不过为了更好地应对流行病的传播,目前人们已经总结出一些基于疾病传播的简化模型,在许多情况下可以很好地预测流行病的传播范围和数量,指导人类有效预防和控制传染病。其中,常见的数学模型有:SI、SIR、SIS、SIRS模型。本文主要对SIRS模型(The SIRS model)进行介绍和讨论。
(二)模型假设
----
在流行病的数学模型表示中,对于流行病传播所涉及的人群,我们将其内部的动态变化简化为介于几个基本疾病状态之间的变化。包括三种疾病状态:易感(S)、感染(I)和康复(R)。
易感状态(S)是指未得病者,由于缺乏免疫能力或免疫能力低下,在与感染者接触时容易受到感染;感染状态(I)是指已经感染该疾病的人,在与易感者接触时,有可能将疾病其传染给他人;康复状态(R)是指感染疾病的人,由于免疫系统对病原体产生抵抗,在一定时间后从感染中恢复。
注:在SIR模型中,考虑到一些疾病的感染者在一段时间后并不会康复,而是死亡,结合流行病学和数学的角度(前者认为无论是康复还是死亡,感染者都被有效地从疾病的潜在宿主库中移除,二者对疾病来说没有什么区别;后者认为在数学建模中,我们并不关心处于R状态的个体是康复还是死亡),R状态也可以表示感染个体的死亡。
(三)模型建构
----
SIRS模型的流程图:
![model](https://raw.githubusercontent.com/pepsicolali/2021SocialMedia/main/figure/SIRS%E6%A8%A1%E5%9E%8B%E7%9A%84%E6%B5%81%E7%A8%8B%E5%9B%BE.png)
SIRS模型是除了SIS模型外另一个包含再感染的模型。在该模型中,个体从感染中得到康复,并获得了与SIR模型同样的免疫力,但这种免疫力只是暂时的,经过一段时间后,个体就会失去免疫力,再次成为易感者。基于此,我们引入一个新的参数δ来代表单位时间内个体失去免疫力的平均速率。其余变量继续引入之前三个模型的变量(N,S,X,R,s,x,r,β,γ)。
变量解释:
n:总人口
S:易感者数量 s:易感者占总体人群的比例(s=S/n)
X:感染者数量 x:感染者占总体人群的比例(x=X/n)
R:康复者数量 r:康复者占总体人群的比例(r=R/n)
β:每个人在单位时间内与其他人接触的平均速率
γ:受感染个体在单位时间内康复(或死亡)的平均速率
刻画该模型的方程式:
对于易感者,其变化量=失去免疫力的康复者-被感染的易感者。要得到S变化率的微分方程,我们需要确定单位时间内X的变化量。前者等于康复者的数量R乘以单位时间内个体失去免疫力的平均速度δ。而对于后者,只有当受感染的人与易感者接触时,疾病才会传播,进而产生新增的感染者,也就是被感染的易感者。如果总人口为n,那么每个感染者随机遇到易感者的平均概率是S/n,因此一个感染者在单位时间内平均会与βS/n个易感者接触。由于平均共有X个感染者,所以单位时间内新感染者的数量将是βSX/n。所以我们可以写出易感者数量S变化率的微分方程:
$$\frac{\mathrm{d}S}{\mathrm{d}t} = \delta\times R-\beta\times \frac{S}{n}\times X$$
代入s=S/n可得易感者比例s变化率的微分方程为:
$$\frac{\mathrm{d}s}{\mathrm{d}t} = \delta\times r-\beta\times s\times x$$
对于感染者,其变化量=新增加的感染者-康复/死亡的感染者。参照上述,单位时间内新增加的感染者数量是βSX/n。再减去单位时间内康复或者死亡的感染者γX,以x=X/n替换X,我们可以得出感染者比例x变化率的微分方程:
$$\frac{\mathrm{d}x}{\mathrm{d}t} = \beta\times s\times x-\gamma\times x$$
对于康复者,其变化量=康复的感染者-失去免疫力的康复者。前者表示为γX,后者表示为Rδ。以r=R/n替换R,可以写出康复者比例r变化率的微分方程:
$$\frac{\mathrm{d}r}{\mathrm{d}t} = \gamma\times x-\delta\times r$$
由于每个个体必须是易感者、被感染者或康复者之一,所以:
$$s+x+r=1$$
综上,SIRS模型的方程式可以表示为:
$$\begin{cases}\frac{\mathrm{d}s}{\mathrm{d}t} = \delta\times r-\beta\times s\times x\\
\frac{\mathrm{d}x}{\mathrm{d}t} = \beta\times s\times x-\gamma\times x\\
\frac{\mathrm{d}r}{\mathrm{d}t} = \gamma\times x-\delta\times r\\
s+x+r=1\\
\end{cases}$$
(五)模型分析及r语言实现
下图为SIS模型中受感染个体的比例:
![sis](https://raw.githubusercontent.com/pepsicolali/2021SocialMedia/main/figure/SIS%E6%A8%A1%E5%9E%8B%E4%B8%AD%E5%8F%97%E6%84%9F%E6%9F%93%E4%B8%AA%E4%BD%93%E7%9A%84%E6%AF%94%E4%BE%8B.png)
可以看到,与SI模型一样,SIS模型中的感染个体比例随着时间的推移呈逻辑曲线增长。然而,与SI模型不同的是,感染者的比例从未达到1,而是趋向于一个稳定的值,说明此时个体的感染率和康复率是相等的。
同样地,我们通过r语言对SIRS模型进行刻画,来探究易感个体、感染个体和康复个体的比例变化。
```{r}
library(deSolve)
library(ggplot2)
model <- function(time, state, pars) {
with(as.list(c(state, pars)), {
dS <- delta * R - beta * S * I/N
dI <- beta * S * I/N - gamma * I
dR <- gamma * I - delta * R
return(list(c(dS, dI, dR)))
})
}
N <- 100000 # 总体人群初始值
I0 <- 10 # 感染者初始值
R0 <- 0 # 康复者初始值
S0 <- N - I0 - R0 # 易感者初始值
init <- c(
S = S0,
I = I0,
R = R0
) # 初始值设定
# 假设模型中的参数是常量,其值为
pars <- c(
delta=0.01, # 个体失去免疫力的平均速率
beta = 0.2, # 个体之间的平均接触速率
gamma = 0.05, # 感染者康复的平均速率
N = N # 人口
)
# 设定时期为一年,每1天迭代一次
times <- seq(0, 365, by = 1)
sirs <- as.data.frame(ode(y = init, times = times, func = model, parms = pars))
ggplot(sirs) +
geom_line(aes(x = time, y = S, col = '易感者'))+
geom_line(aes(x = time, y = I, col = '感染者'))+
geom_line(aes(x = time, y = R, col = '康复者'))+
theme_light(base_family = '') +
scale_colour_manual("",values=c("易感者" = "blue", "感染者" = "red", "康复者" = "darkgreen")) +
scale_y_continuous('')
```
![change](https://raw.githubusercontent.com/pepsicolali/2021SocialMedia/main/figure/SIRS%E4%B8%AA%E4%BD%93%E6%AF%94%E4%BE%8B.png)
从图中可以看出,随着时间的推移,感染个体比例上升,易感个体比例下降,康复个体比例也逐渐增多。一段时间后感染者开始减少,同时康复者继续增多,当它们各自到达最值后个体比例会以相反的趋势在很小的范围内起伏变化一段时间,最后感染个体、易感个体、康复个体比例都趋于一个相对稳定的值,且在总体人群中的占比:康复者>易感者>感染者。
根据比例的变化,在符合SIRS模型的流行病传播的开始阶段,小部分人群会被感染。由于体内和体外环境迅速对病毒做出防御,包括免疫系统的抵抗、药物的治疗以及社会人员防控措施的实施,感染者会逐渐康复。但经过一段时间后,部分康复者失去了对病毒的免疫力,再次成为了感染者或易感者。最终传播的结果是,总体人群的大部分都对该流行病病毒产生了一定的免疫力,可以抵抗病毒的入侵,保护自身不受感染,小部分人缺乏免疫力或免疫力弱,存在被感染的风险,此外仍有少数感染患病人群存在。
对于SIRS模型,虽然我们可以采用线性稳定性分析和非线性动力学的一系列技巧来处理SIRS模型,但SIRS模型并不能仅仅通过分析来解决。更直接的方法是对微分方程进行数值积分,因为SIRS模型的变化有着丰富的可能性,它主要取决于三个参数(β、γ、δ)的值,包括疾病在流行状态下持续存在、死亡以及在爆发和缓解期之间摇摆的行为。
(四)四种常见模型的比较
----
SI、SIR、SIS、SIRS模型是四个常见的传染病数学模型,其共同特征在于研究群体中都包括两类最基本的人群,即易感染者S与感染者I。区别在于SIR和SIRS模型进行了拓展,涉及到了疾病的恢复(或死亡)和再感染,更贴合现实情况或者更适合作为特定疾病的模型。其中SIR模型表示所涉及的群体对疾病具有较强的免疫力,不易被再次感染。
SI模型适用于某种传染病无法治愈,但不会致人死亡的情况,其应用范围很局限;SIS模型可用于描述患者反复多次得病的情况;SIR模型可表示感染者在治愈康复后获得终生免疫力;SIRS模型可用于描述康复后获得了暂时的免疫力。
(五)拓展
----
除了上述四种常见的流行病模型外,还有许多其他模拟特定类型疾病传播的流行病模型。这些模型引入了一些其他的状态,例如 "暴露 "状态,表示已经感染了某种疾病,但其感染尚未发展到可以传染给其他人的程度;或者在易感状态之前的初始免疫状态,通常用来代表新生儿所拥有的母源性免疫力。此外,有一些模型允许新的个体通过出生或移民进入人群,还有一些模型对从疾病中完全康复的人和那些已经康复但仍然可以将疾病传给他人的携带者做了区分。感兴趣的同学可以查阅参考资料,做进一步研究。
***
参考文献:
[1] Newman M E J . Networks: An Introduction[J]. astronomische nachrichten, 2010.