---
title: "Kermack-McKendrick SIR model"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Kermack-McKendrick SIR model}
%\VignetteEncoding{UTF-8}
%\VignetteEngine{knitr::rmarkdown}
editor_options:
chunk_output_type: console
bibliography: ../inst/REFERENCES.bib
---
```{r, setseed, echo=FALSE}
set.seed(1)
knitr::opts_chunk$set(fig.width = 6, fig.height = 4)
if("package:GillespieSSA" %in% search()) detach("package:GillespieSSA", unload=TRUE)
```
The Kermack-McKendrick SIR model [@Brown1993] is defined as
```
dS/dt = -beta*N*S
dI/dt = beta*N*S - gamma*I
dR/dt = gamma*I
```
Note that simulations of this model can generate in all zero propensity,
if the first reaction is a recovery of the single 'Infected' individual.
Define parameters
```{r}
library(GillespieSSA2)
sim_name <- "Kermack-McKendrick SIR model"
params <- c(beta = .001, gamma = .1)
final_time <- 100
initial_state <- c(S = 500, I = 1, R = 0)
```
Define reactions
```{r}
reactions <- list(
reaction("beta * S * I", c(S = -1, I = +1), name = "transmission"),
reaction("gamma * I", c(I = -1, R = +1), name = "recovery")
)
```
Run simulations with the Exact method
```{r exact}
set.seed(1)
out <- ssa(
initial_state = initial_state,
reactions = reactions,
params = params,
final_time = final_time,
method = ssa_exact(),
sim_name = sim_name
)
plot_ssa(out)
```
Run simulations with the Explict tau-leap method
```{r etl}
set.seed(1)
out <- ssa(
initial_state = initial_state,
reactions = reactions,
params = params,
final_time = final_time,
method = ssa_etl(),
sim_name = sim_name
)
plot_ssa(out)
```
Run simulations with the Binomial tau-leap method
```{r btl}
set.seed(2)
out <- ssa(
initial_state = initial_state,
reactions = reactions,
params = params,
final_time = final_time,
method = ssa_btl(),
sim_name = sim_name
)
plot_ssa(out)
```
## References