Basic SIR Model Documentation

Overview

This app implements the basic SIR (susceptible-infected-recovered) model and allows you to explore a very basic infectious disease simulation. The main goal is to provide familiarity with the overall setup and ideas behind using these simulations, and how to run them. Read about the model in the “Model” tab. Make sure to read the ‘general notes’ section. Then do the tasks described in the “What to do” tab. Finally, check out the “Further Information” tab to learn where you can find some background information on this (and many of the other) apps.

The Model

Model Overview

This model is a compartmental SIR (susceptible-infected-recovered) model. Compartmental means that we place individuals into distinct compartments, according to some characteristics. We then only track the total number of individuals in each of these compartments. In the simplest model, the only characteristic we track is a person’s infection status. We allow for 3 different stages/compartments:

The SIR model is very basic. It could be extended by introducing further compartments. For instance, we could stratify according to gender, which would give us 2 sets of SIR compartments, one for males and one for females. Some of these extensions are implemented in other apps.

In addition to specifying the compartments of a model, we need to specify the processes/mechanisms determining the changes for each compartment. Broadly speaking, there are processes that increase the number of individuals in a given compartment/stage, and processes that lead to a reduction. Those processes are sometimes called inflows and outflows.

For our system, we specify only 2 processes/flows:

As with the compartments, we could extend the model and allow other processes to occur. For instance, we could allow for natural births and deaths, waning immunity, deaths due to disease, etc. Some of that will be included in other apps.

Model Representation

For compartmental models (and also often other types of models), it is useful to show a graphical schematic representation of the compartments and processes included in the model. For compartmental models, such a diagram/figure is usually called a flow diagram. Such a diagram consists of a box for each compartment, and arrows pointing in and out of boxes to describe flows and interactions. For the simple SIR model, the flow diagram looks as follows:

Flow diagram for simple SIR model.

Flow diagram for simple SIR model.

Model Implementation I

To allow us to simulate this model, we need to implement it on the computer. For that purpose, it is often useful to write the model as mathematical equations (this is not strictly needed, some computer simulation models are never formulated as mathematical models). A very common way (but not the only one) to implement compartmental models such as the simple SIR model is a set of ordinary differential equations. Each compartment/variable gets an equation. The right side of each equation specifies the processes going on in the system and how they change the numbers in each compartment via inflows and outflows. For the model described above, the equations look like this:

\[ \begin{aligned} \dot S & = -bSI \\ \dot I & = bSI - gI \\ \dot R & = gI \end{aligned} \]

Note: If you don’t see equations but instead gibberish, try opening the app with a different browser. I have found that occasionally, on some computers/browsers, the math is not shown properly.

Model Implementation II

Continuous time models implemented as ordinary differential equations are the most common types of models. However, other implementations of the above model are possible. One alternative formulation is a discrete-time deterministic equivalent to the ODE model. For such an implementation, the equations are:

\[ \begin{aligned} S_{t+dt} & = S_t + dt * \left( - b I_t S_t \right) \\ I_{t+dt} & = I_t + dt * \left( b I_t S_t - g I_t \right) \\ R_{t+dt} & = R_t + dt * \left( g I_t \right) \end{aligned} \]

In words, the number of susceptible/infected/recovered at a time step dt in the future is given by the number at the current time, t, plus/minus the various inflow and outflow processes. The latter need to be multiplied by the time step, since less of these events can happen if the time step is smaller. As the time-step gets small, this discrete-time model approximates the continuous-time model above. In fact, when we implement a continuous-time model on a computer, the underlying simulator runs a “smart” version of a discrete-time model and makes sure the steps taken are so small that the numerical simulation is a good approximation of the continuous-time model. If you want to learn more about that, you can check out the ‘deSolve’ R package documentation, which we use to run our simulations.

Some general notes

What to do

A few general notes

The tasks below are described in a way that assumes everything is in units of days (rate parameters, therefore, have units of inverse days). If any quantity is not given in those units, you need to convert it first (e.g. if it says a week, you need to convert it to 7 days).

Task 1

Task 2

Task 3

Task 4

Run the simulation, see what you get. You should see the results from the 2 models essentially on top of each other and barely distinguishable.

Task 5

You should notice that as dt gets larger, the differences between discrete-time and continuous-time models increase. At some point when the time-step gets too large, the discrete-time simulation ‘crashes’ and you get an error message. This doesn’t impact the continuous/ODE simulation since it chooses its time-step during the simulation internally and dt only affects the times for which the results are returned.

Task 6

Task 7

Task 8

Task 9

Further Information

References

Bjørnstad, Ottar N. 2018. Epidemics: Models and Data Using R. Use R! Springer International Publishing. https://www.springer.com/la/book/9783319974866.

Keeling, Matt J, and Pejman Rohani. 2008. Modeling Infectious Diseases in Humans and Animals. Princeton University Press.

Vynnycky, Emilia, and Richard White. 2010. An Introduction to Infectious Disease Modelling. Oxford University Press.