Epidemiologia – O modelo SIR com dinâmica populacional

E continuando mais um pouquinho sobre o modelo SIR.

O modelo SIR assume um tamanho populacional constante, mas lembre-se que o grupo “resistente” podia ser considerado como o grupo daqueles que conseguem a última imunidade possível, la muerte, já que quem ta morto não fica mais doente.

De toda forma, nos podemos fazer um modelo mais complexo que inclua nascimentos e mortes independentes da doença que estamos tentando entender. Então nos temos que adicionar nascimentos como um parâmetro, o b aqui (de births). Nascimentos esses que podem vir de todos os tipos de indivíduos (S + I + R), mas nos assumimos que quem acabou de nascer é suscetível apenas. E nos adicionamos uma mortalidade m para cada grupo(mS,mI,mR).

\frac{dS}{dt} = b(S+I+R) -\beta S I - mS

\frac{dI}{dt} = \beta S I - \gamma I - mI

\frac{dR}{dt} = \gamma I - mR

E tentemos ver novamente na forma de uma figura feita com o igraph, que eu achei mais facil de entender que esse monte de equação.

01

Veja que nascimentos adicionam apenas ao grupo dos suscetíveis, mas ela adiciona indivíduos baseado no tamanho populacional atual (S+I+R, não apenas o S), enquanto a mortalidade é independente da densidade subtrai indivíduos de todos os grupos.

Nos podemos assumir (apenas para começar a entender o modelo) que se indivíduos infectados e resistentes podem contribuir para prole, para os nascimentos, então essa doença deve ser relativamente benigna. Assim podemos assumir também que a mortalidade é a mesma para todos os grupos (m_i=m). Por último, vamos assumir um tamanho populacional constante. Isso significa que a taxa de natalidade é igual a de mortalidade ou b=m.

Agora imagine uma grande cidade, com digamos, um milhão de pessoas. Vamos também assumir que nos começamos com a população virtualmente toda suscetível, mas introduzimos um único individuo infectado.

1
2
3
4
N <- 10^6
R <- 0
I <- 1
S <- N - I - R

Vamos também simular a ocorrência dessa doença ao longo de uns 14 dias, Lembre-se que \gamma é o inverso da duração de uma doença.

1
g<-1/(13/365)

Dada uma tamanho populacional constante e um crescimento exponencial, então tempo de vida médio é o inverso da taxa de natalidade. Vamos considerar que o tempo médio de vida é de 50 anos.

1
b <- 1/50

Para esse modelo, a força da infeção passa a ser R_0 = 1+\frac{1}{b+\alpha}, onde \alpha é a idade média do contagio da doença. Nos podemos então estimar \beta a partir de todos os outros parâmetros, incluindo o tamanho populacional, tempo médio de vida, idade média do início da doença e o tempo médio da duração da doença. Para o exemplo, imagine que temos uma doença de crianças, onde a doença se inicia comumente la pelos 5 anos, assim temos:

1
2
idade <- 5
R0 <- 1+1/(b*idade)

então \beta tem que ser

1
B <- R0 * (g+b)/N

Finalmente, nos podemos integrar a população e seus estados.

Acontece que devido a relativa dinâmica extrema, nos queremos que a função ode tome passos pequenos, para capturar propriamente a dinâmica, nos usamos o argumento hmax para ter certeza que o maior passo é relativamente pequeno.

1
2
3
4
5
6
7
8
9
parms <-c(B=B, #Taxa de transmissão
          g=g, #Taxa de criação de resistencia
          b=b, #Natalidade
          m=b) #Mortalidade
 
anos <- seq(0,30,by=0.1)
 
library(deSolve)
SIRbd.out <- data.frame(ode(c(S=S,I=I,R=R),anos,SIRbd,parms,hmax=0.01))

E vemos o seguinte:

02

Note que a população rapidamente se torna resistente. Note também que nos temos oscilações, no entanto elas são amortecidas. Um tratamento analítico do modelo, incluindo análise de valores eigen da matriz jacobiana pode nos mostrar precisamente a periodicidade. Ela depende da idade média de início da doença e da sua duração.

Bem é isso ai, daqui a pouco começaremos a ter um pouco de posts de estatística espacial, que ja passou da hora de começar a explorar esse tópico direito e aprender essas coisas que são muito legais e úteis. O script vai estar la no repositório recologia, e se eu escrevi alguma bobeira, algo errado, deixe um comentário corrigindo ou mande um e-mail e até mais.

Referência:
Stevens, M. H. – 2011 – A Primer of Ecology with R. Springer

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
##################################
## Grafo
##################################
library(igraph)
 
SIR_grafo<-graph.formula(S-+I,I-+R,Entrada-+S,Saida+-S,Saida+-I,Saida+-R)
E(SIR_grafo)$label<-c(expression(paste(beta,"IS")),
                      "m",
                      expression(paste(gamma,"I")),
                      "m",
                      "m",
                      "b")
loc<-matrix(c(0,1,1,1,2,1,0,1.5,1,0.5),ncol=2,byrow=T)
 
#jpeg("01.jpg")
plot(SIR_grafo,layout=loc,rescale=F,xlim=c(0,2.2),ylim=c(0,2),vertex.size=23)
#dev.off()
 
##################################
## Modelo
##################################
SIRbd <- function(t,y,p){
    S <- y[1]
    I <- y[2]
    R <- y[3]
    with(as.list(p), {
                    dS.dt <- b * (S+I+R) - B * I * S - m * S
                    dI.dt <- B * I * S - g * I - m * I
                    dR.dt <- g * I -m * R
                    return(list(c(dS.dt,dI.dt,dR.dt)))
                })
}
 
##################################
## Parametros
##################################
N <- 10^6
R <- 0
I <- 1
S <- N - I - R
g<-1/(13/365)
b <- 1/50
idade <- 5
R0 <- 1+1/(b*idade)
B <- R0 * (g+b)/N
 
##################################
## Figura
##################################
parms <-c(B=B, #Taxa de transmissão
          g=g, #Taxa de criação de resistencia
          b=b, #Natalidade
          m=b) #Mortalidade
 
anos <- seq(0,30,by=0.1)
 
library(deSolve)
SIRbd.out <- data.frame(ode(c(S=S,I=I,R=R),anos,SIRbd,parms,hmax=0.01))
 
#jpeg("02.jpg")
matplot(SIRbd.out[,1],sqrt(SIRbd.out[,-1]),type="l",col=1,lty=1:3,
        ylab="sqrt(No. of indivíduos)",xlab="Anos",frame=F)
legend("right",c("S","I","R"),lty=1:3,bty="n")
#dev.off()

Epidemiologia – O Modelo SIR com transmissão dependente da frequência

No post anterior aqui, a gente deu uma olhada no modelo SIR, para avaliar a dinâmica de uma doença parasitaria, sendo que então é mais fácil contabilizar indivíduos infectados ou não, que a população do parasita per se.

O modelo é o seguinte.

\frac{dS}{dt} = -\beta I S
\frac{dI}{dt} = \beta I S - \gamma I
\frac{dR}{dt} = \gamma I

So para facilitar o entendimento, revisando com uma figurinha.

01

São os três compartimentos, S, I e R, e veja que temos as formulas de como é o fluxo de individuos entre esses compartimentos, veja que no grafo ela aparece uma vez, isso porque o \beta I S tira indivíduos do S e põe para o I, por isso que nas equações la em cima, ele é com um sinal de negativo na derivada do S e positivo na derivada do I.
No caso do I, ele perde para individuos para o R pelo \gamma I, ai mesmo esquema, menos no I e mais no R.

Essa conclusão se aplica quando S,I e R são densidades. Isso quer dizer que se a gente aumentar o tamanho da população, mas também a área associada a essa população, então você não aumentou a densidade. Ja se apenas o tamanho da população aumenta, mas a densidade é mantida, então a frequência de interações não aumenta, mas algumas populações podem aumentar em densidade com o aumento da população, se não temos mais área para expandir por exemplo.

Além da transmissão por ação de massa (dependente da densidade), existem outras formas de modelar o problema de forma dependente do tamanho da população, da frequencia desses compartimentos dentro do total da população. Uma das formas mais simples é conhecida como transmissão dependente da frequência (“frequency-dependente transmission”), onde:

\frac{dS}{dt} = -\beta \frac{I S}{N}
\frac{dI}{dt} = \beta  \frac{I S}{N} - \gamma I
\frac{dR}{dt} = \gamma I

A forma correta da função de transmissão depende de como ela ocorre. Imagine duas pessoas em um elevador, uma doente (Infectada) e uma sadia (Suscetível), então o indivíduo infectado espirra, isso resulta em uma uma probabilidade particular \beta que o indivíduo suscetível fique infectado. Agora imagine a mesma situação, mas um indivíduo resistente entre no elevador, será que a adição de indivíduos resistentes modifica a probabilidade que indivíduos suscetíveis fiquem infectados? Note o que mudou e o que não mudou. Primeiro, com a adição de indivíduos resistentes, N aumentou dentro do elevador, foi de 2 para 3, e a prevalência diminuiu, I/N foi de 1/2 para 1/3, no entanto as densidade de I e S continuam a mesma (1 de cada no elevador). O que pode acontecer?

1. Se uma quantidade suficiente de parasitas(imagine a doença que quiser) se espalha igualmente pelo elevador, adicionar um indivíduo resistente não muda a chance do indivíduo suscetível ficar contaminado, e a chance de infeção vai continuar dependente das densidade de I e S, a taxa não vai variar com o declínio da prevalência nesse caso.

2. Se apenas o vizinho imediato do indivíduo infectado é exposto ao patógeno, pense que ele precisa passar pelo toque, pelo contato físico, um esbarrão, então a probabilidade de transmissão diminui com o aumento de indivíduos Resistentes (R) certo? E assim a taxa de transmissão vai diminuir com o declínio da prevalência, porque agora além da chance de \beta, temos também que o indivíduo infectado tem que estar ao lado indivíduo suscetivel, se o resistente fica no meio do caminho, a doença não se espalha, ou seja o N fez o \beta diminuir, e veja la nas formulas acima que o N está dividindo tudo que o \beta multiplica, logo quanto maior o N, menor o \beta.

É simples imaginar alguns cenários diferentes que se enquadram nesses dois resultados, e é muito importante justificar a forma da função.

Transmissão dependente da densidade é independente do número de indivíduos resistentes, ter maior densidade de indivíduos infectados ou mais indivíduos suscetíveis sempre aumenta a taxa de transmissão, assumindo que ambos I, S > 0. Vejamos como isso funciona numa figura.

02

Aqui é relativamente simples, direto, a formula é \beta I S para o fluxo, logo se a gente aumenta a quantidade de I ou de S (não esqueça do I, S > 0 para não zerar a transmissão), a quantidade transmitida aumenta linearmente, ou o que nos interessa, quantos indivíduos ficam doentes.

Porém, em contraste, a transmissão dependente da frequência de indivíduos, como quando os resistentes ficam no meio da transmissão. Isso é, eles reduzem a probabilidade de infectados entrarem em contato com suscetíveis, similarmente, ter mais indivíduos suscetíveis torna mais provável que o vizinho imediato de um indivíduo suscetível seja outro individuo suscetível, o que não gera transmissão também, lembre-se que o N está dividindo, \beta \frac{I S}{N}.

Isso fica assim então

03

Veja que nesse exemplo, temos zero indivíduos Resistentes, e estamos vendo o que acontece no aumento de indivíduos Suscetíveis e Infectados, a transmissão é dependente da prevalência, do tamanho total da população, então por exemplo adicionar muitos indivíduos suscetíveis não aumenta linearmente a transmissão no caso anterior, porque pensamos que eles podem ficar um do lado dos outros e isso não gera transmissão, o que gera transmissão é um infectado junto a um individuo suscetível, mas isso depende do tamanho total da população, então crescemos a transmissão ao adicionar indivíduos infectados e Suscetíveis, veja que a superfície é curvilinear, precisa dos dois para subir.

Mas o que a transmissão dependente de frequência implica sobre a dinâmica? Vamos revolver para dI/dt >0

0 < \beta \frac{S I}{N} -\gamma I[/latex] e [latex]\gamma < \beta \frac{S}{N}[/latex]  Como nos fizemos no <a href="http://recologia.com.br/2015/06/epidemiologia-o-modelo-sir/">post</a> anterior, vamos considerar a situação anterior a explosão da epidemia onde [latex]S \approx N, de forma que \frac{S}{N} = 1. Nesse caso, a taxa básica de reprodução é R_0 = \frac{\beta}{\gamma} que é independente de N. Uma epidemia vai ocorrer se \beta > \gamma, independente da densidade da população, interprete isso como o seguinte biologicamente falando, se todo mundo se cura muito rápido, não existe tempo suficiente para os infectados infectarem muita gente.

Isso está em contraste direto com o modelo de transmissão dependente da densidade, onde a epidemia pode ser prevenida simplesmente reduzindo o tamanho populacional N, para uma densidade baixa o suficiente. Ambos os modelos de transmissão são observados em populações humanas e não humanas, então é importante conhecer como a doença se espalha para conseguir predizer sua dinâmica.

Outro fenômeno interessante com a transmissão dependente de frequência é que a prevalência (I/N) pode declinar com o aumento da tamanho populacional. Dois processos contribuem com esse padrão. Primeiro que a epidemia em uma população totalmente suscetível começa com um único indivíduo infectado, e como consequência, a prevalência inicial é sempre I/N = 1/N. Segundo, e como uma consequência disso, a transmissão é menor em grandes populações já que \beta \frac{S I}{N} é pequeno. Como consequência a prevalência se mantêm baixa por relativamente um longo período.

Veja que quando comparamos a prevalência contra a densidade populacional ao longo do tempo, onde os tipos de linhas são os tamanhos populacionais diferentes, para o modelo dependente da frequência (o tamanho populacional importa):

04

Um maior tamanho populacional maior aqui implica numa menor prevalência geral.

Enquanto para o caso dependente da densidade (aqui o que importa a proporção de infectador para suscetíveis, ou o contrario, o que interessa são essas quantidade apenas).

05

A prevalência aumenta com a densidade.

Mais uma questão interessante ainda, em uma população sazonal, muitos indivíduos em grandes populações se mantêm não infectados depois de um certo tempo, e dependendo do organismo, isso pode ser tempo suficiente para se reproduzir, ai entramos na pressão evolutiva para resistir a doença, ou não pressão, porque depois que você se reproduziu, para uma plantinha sazonal por exemplo, dane-se, é só secar e morrer porque sua parte você já fez, agora é com os descendentes.

07

Em contraste, o modelo dependente da densidade tipicamente mostra um padrão contrário, com uma epidemia mais rápida e extrema explosão de infectados, e maior prevalência em populações densas.

06

Bem é isso ai, o script vai estar la no repositório recologia, e se eu escrevi alguma bobeira, algo errado, deixe um comentário corrigindo ou mande um e-mail e até mais.

Referência:
Stevens, M. H. – 2011 – A Primer of Ecology with R. Springer

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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
##################################
## Grafo
##################################
library(igraph)
 
SIR_grafo<-graph.formula(S-+I,I-+R)
E(SIR_grafo)$label<-c(expression(paste(beta,"IS")),expression(paste(gamma,"I")))
loc<-matrix(c(0,1,1,1,2,1),ncol=2,byrow=T)
 
#jpeg("01.jpg")
plot(SIR_grafo,layout=loc,rescale=F,xlim=c(0,2.2),ylim=c(0,2))
#dev.off()
 
##################################
## Modelos
##################################
library(deSolve)
 
SIR <- function(t, y, p) {
    {
    S <- y[1]
    I <- y[2]
    R <- y[3]
    }
    with(as.list(p), {
                    dS.dt <- -B * I * S
                    dI.dt <- B * I * S - g * I
                    dR.dt <- g * I
                    return(list(c(dS.dt, dI.dt, dR.dt)))
                })
}
 
SIRf <- function(t, y, p) {
    {
    S <- y[1]
    I <- y[2]
    R <- y[3]
    N <- S + I + R
    }
    with(as.list(p), {
                    dS.dt <- -B * (I * S)/N
                    dI.dt <- B * (I * S)/N - g * I
                    dR.dt <- g * I
                    return(list(c(dS.dt, dI.dt, dR.dt)))
                })
}
 
R <- 0
S <- I <- 1000
Ss <- Is <- seq(1,S,length=11)
N <- S + I + R
betaD <- 0.1
betaF <- betaD * N
 
mat1 <- sapply(Is, function(i) {betaD*i*Ss})
mat2 <- sapply(Is, function(i) {betaF*i*Ss/(i+Ss+R)})
 
#jpeg("02.jpg")
persp(mat1,theta=20,phi=15,r=10,zlim=c(0,betaD*S*I),xlab="I",ylab="S",
      main="Dependente da densidade",zlab="Taxa de Transmissão")
#dev.off()
 
#jpeg("03.jpg")
persp(mat2,theta=20,phi=15,r=10,zlim=c(0,betaF*S*I/N),xlab="I",ylab="S",
      main="Dependente da frequência",zlab="Taxa de Transmissão")
#dev.off()
##################################
## Taxa Transmissão
##################################
 
S <- 4^(0:4)
I <- 1
parmsf <- c(B=1, g=0)
parmsd <- c(B=1/16, g=0)
 
Months <- seq(0,8,by=0.1)
outd <- sapply(S, function(s) {
                   out <- ode(c(s,I,R),Months,SIR,parmsd)
                   out[,3]/apply(out[,2:4],1,sum)
               })
 
outf <- sapply(S, function(s) {
                   out <- ode(c(s,I,R), Months, SIRf, parmsf)
                   out[,3]/apply(out[,2:4],1,sum)
               })
 
#jpeg("04.jpg")
matplot(Months,outd,type="l",col=1,ylab = "Prevalência (I/N)",
        main="Dependente da densidade")
legend("bottomright",legend=S,lty=1:length(S),bty="n")
#dev.off()
 
#jpeg("05.jpg")
matplot(Months,outf,type="l",col=1,ylab = "Prevalência (I/N)",
        main="Dependente da frequência")
legend("bottomright",legend=S,lty=1:length(S),bty="n")
#dev.off()
##################################
## Comparação da dinamica
##################################
N <- 1000
I <- 1
R <- 1
S <- N - I - R
 
 
#
#jpeg("06.jpg")
meses <- seq(0, 0.8, by = 0.01)
parms <- c(B = 0.1, g = 4)
SIR.out <- data.frame(ode(c(S, I, R), meses, SIR, parms))
colnames(SIR.out)<-c("tempo","S","I","R")
matplot(meses, SIR.out[, -1], type = "l", lty = 1:3,frame=F,
        xlab="Tempo em Meses",ylab="N",lwd=2,col=2:4,main="Modelo dependente da densidade")
legend("right", c("Resistentes", "Infectados", "Susceptiveis"), lty = 3:1, col = c(4,3,2), bty = "n",lwd=2)
#dev.off()
 
#jpeg("07.jpg")
layout(matrix(1:4,ncol=2,nrow=2,byrow=T))
#
N <- 10000
I <- 1
R <- 1
S <- N - I - R
SIRf.out <- data.frame(ode(c(S, I, R), meses, SIRf, parms))
colnames(SIRf.out)<-c("tempo","S","I","R")
matplot(meses, SIRf.out[, -1], type = "l", lty = 1:3,frame=F,
        xlab="Tempo em Meses",ylab="N",lwd=2,col=2:4,main="N=10000")
#
N <- 1000
I <- 1
R <- 1
S <- N - I - R
SIRf.out <- data.frame(ode(c(S, I, R), meses, SIRf, parms))
colnames(SIRf.out)<-c("tempo","S","I","R")
matplot(meses, SIRf.out[, -1], type = "l", lty = 1:3,frame=F,
        xlab="Tempo em Meses",ylab="N",lwd=2,col=2:4,main="N=1000")
#
N <- 100
I <- 1
R <- 1
S <- N - I - R
SIRf.out <- data.frame(ode(c(S, I, R), meses, SIRf, parms))
colnames(SIRf.out)<-c("tempo","S","I","R")
matplot(meses, SIRf.out[, -1], type = "l", lty = 1:3,frame=F,
        xlab="Tempo em Meses",ylab="N",lwd=2,col=2:4,main="N=100")
#
N <- 10
I <- 1
R <- 1
S <- N - I - R
SIRf.out <- data.frame(ode(c(S, I, R), meses, SIRf, parms))
colnames(SIRf.out)<-c("tempo","S","I","R")
matplot(meses, SIRf.out[, -1], type = "l", lty = 1:3,frame=F,
        xlab="Tempo em Meses",ylab="N",lwd=2,col=2:4,main="N=10")
#dev.off()

Epidemiologia – O modelo SIR

Epidemiologia é a ciência que estuda padrões, causas e efeitos de doenças em populações definidas. Tipicamente, patógenos que causam doenças, como fungos, bactérias e vírus, com alguma especificidade de hospedeiro, e que tem um crescimento populacional dentro do hospedeiro.

O modelo mais simples para doenças, não modela as populações dos patógenos diretamente, mas contabiliza os diferentes estados dos hospedeiros dentro de sua população, primariamente aqueles com e sem sintomas. Desenvolvido por Kermack e McCormick, esse modelo inicial é conhecido como SIR, e basicamente ele registra ao longo do tempo três estados na população de hospedeiros, que são:

Suscetíveis (Susceptible) – Indivíduos que não estão infectados, mas podem vir a serem infectados.
Infectados (Infected) – Indivíduos que estão infectados
Resistentes (Resistant) – Indivíduos que são resistentes a doença, tipicamente aqueles que ja conseguiram adquirir uma imunidade devido a uma infecção passada.

Assim o total da população N é igual a S+I+R. Lembrando que N,S,I e R são densidades. Isto é, nos avaliamos número de indivíduos em uma área fixa. Isso é importante, ja tem um efeito direto sobre a dispersão, ou transmissão da doença.

As doenças se espalham dos indivíduos infectados para os suscetíveis. A taxa depende de certa forma ao número, ou alternativamente, na fração da população que está infectada. Indivíduos resistentes não são tipicamente considerados vetores do patógeno, e dessa forma, conforme vão aumentando, estes diminuem a taxa de transmissão ao diluir os dois outros grupos.

O ponto de partida para entender tudo isso, é uma população com tamanho constante, sem imigração ou emigração.

\frac{dS}{dt} = -\beta I S
\frac{dI}{dt} = \beta I S - \gamma I
\frac{dR}{dt} = \gamma I

No R, podemos criar uma função para descrever esse conjunto de equações.

1
2
3
4
5
6
7
8
9
10
11
12
13
SIR <- function(t, y, p) {
    {
    S <- y[1]
    I <- y[2]
    R <- y[3]
    }
    with(as.list(p), {
                    dS.dt <- -B * I * S
                    dI.dt <- B * I * S - g * I
                    dR.dt <- g * I
                    return(list(c(dS.dt, dI.dt, dR.dt)))
                })
}

Ela está no esquema para ser usada com o pacote DeSolve, para equações ordinárias diferencias (ODE, muito legal esse nome né, equações ordinárias hehe)

Nesse modelo, o coeficiente de transmissão, \beta, descreve a taxa instantânea na qual o número de hospedeiros infectados aumentam por indivíduo já infectado. Lembre-se que ele é baseado na lei de ação de massa, emprestado da física e da química. Ele assume que a taxa na qual um evento ocorre(novas infeções) depende da mistura aleatório dos reagentes (S,I), e que a taxa na qual na qual os reagentes colidem e reagem pode ser descrita por uma simples constante, \beta. Assim como a densidade de qualquer uma das moléculas (S,I) aumenta, aumenta também taxa de transmissão. A taxa de transmissão é então a taxa instantânea de novos infectados po unidade de tempo.

Indivíduos resistentes podem ser resistentes por uma ou duas razões. Eles podem morrer, ou podem desenvolver imunidades. Em ambos os casos, nos assumimos que eles não podem pegar a doença de novo. Como esse modelo assume uma população de tamanho constante, nos continuamos a contar todos os indivíduos R, independente se eles morreram ou se tornaram imunes.

Esses indivíduos se tornam resistentes a doença em uma taxa per capita \gamma. A taxa \gamma é também a média do tempo de residencia, ou duração da doença.

A incidência é o numero de novos afetados ou casos ocorrendo dentro de um intervalo de tempo. Essa definição faz uma versão de tempo discreto da taxa de transmissão. A prevalência é a fração da população que está infectada \frac{I}{N}.

Ao observar essa dinâmica ao longo do tempo, num exemplo onde por exemplo, iniciamos a maior parte dos indivíduos como Susceptíveis, aqui 9998 susceptíveis, um individuo infectado e um resistente.

01

Veja que com apenas um individuo infectado, conseguimos uma epidemia, um “outbreak”.

Uma pergunta comum, talvez a primeira a surgir em ecologia é perguntar sobre quais circunstâncias uma epidemia vai acontecer? Outra forma de perguntar isso é perguntar sobre quais condições esperamos I > 0. Nos podemos colocar \frac{dI}{dt}>0 e resolver para uma condição interessante sobre o que é preciso para uma epidemia.

0<\beta I S - \gamma I[/latex]  e  [latex]\frac{\gamma}{\beta}<S[/latex]  O que isso nos diz? Primeiro, como podemos dividir por I, isso significa que se ninguém está infectado, então uma epidemia não pode acontecer, senão teríamos divido por zero. Mas isso é mais que intuitivo, um equilíbrio instável em 0. Segundo, essa equação nos diz que uma epidemia vai ocorrer se a densidade de indivíduos Susceptíveis é maior que [latex]\frac{\gamma}{\beta}[/latex]. Se nos considerarmos uma pre-epidemia onde [latex]S \approx N[/latex], então diminuindo a abundância da população o suficiente pode conter a expansão da doença. Isso é o porque epidemias tendem a ocorrer em populações com altas densidades, como hospedeiros na pecuária, como o gado, ou historicamente como já vimos em populações humanas ou escolas.  Vacinações são uma forma  de reduzir S sem reduzir N. Se um número suficiente de indivíduos na população são vacinados para reduzir S abaixo de [latex]\frac{\gamma}{\beta}[/latex], isso tende a proteger os indivíduos não vacinados também.   Outra representação comum é chamada de "forca de infeção" ("force of infection") ou taxa de produção básica da doença ("basic reproductive rate of the disease"). Se nos assumirmos que em uma grande população [latex]S \approx N[/latex], então temos que  [latex]R_0 = \frac{\beta N}{\gamma}[/latex]  onde [latex]R_0[/latex] é a taxa básica de reprodução da doença. Se [latex]R_0>1, então uma epidemia é plausível.

Bem é isso ai, o script vai estar la no repositório recologia, e se eu escrevi alguma bobeira, algo errado, deixe um comentário corrigindo ou mande um e-mail e até mais.

Referência:
Stevens, M. H. – 2011 – A Primer of Ecology with R. Srpinger

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
SIR <- function(t, y, p) {
    {
    S <- y[1]
    I <- y[2]
    R <- y[3]
    }
    with(as.list(p), {
                    dS.dt <- -B * I * S
                    dI.dt <- B * I * S - g * I
                    dR.dt <- g * I
                    return(list(c(dS.dt, dI.dt, dR.dt)))
                })
}
 
N <- 10000
I <- 1
R <- 1
S <- N - I - R
parms <- c(B = 0.01, g = 4)
meses <- seq(0, 1.5, by = 0.01)
 
#install.packages("deSolve")
library(deSolve)
SIR.out <- data.frame(ode(c(S, I, R), meses, SIR, parms))
colnames(SIR.out)<-c("tempo","S","I","R")
 
matplot(meses, SIR.out[, -1], type = "l", lty = 1:3,frame=F,
        xlab="Tempo em Meses",ylab="N",lwd=2,col=2:4)
legend("right", c("Resistentes", "Infectados", "Susceptiveis"), lty = 3:1, col = c(4,3,2), bty = "n",lwd=2)