DSAIDE - Dynamical Systems Approach to Infectious Disease Epidemiology
A collection of Shiny/R Apps to explore and simulate the population dynamics of infectious diseases.
Written and maintained by Andreas Handel, with contributions from others.
In this app, we will explore a model that has several more compartments than the basic SIR model discussed in the Introduction to ID app. Read about the model in the “Model” tab. Then do the tasks described in the “What to do” tab.
Note: I’ll be using the term individual(s) and host(s) interchangably in the future. This is common usage and I want you to get used to this terminology, therefore I’m switching around on purpose. They mean the same thing in this context.
In the Introduction to ID app, you explored a simple 3-compartment model, the basic SIR model. The model for this app has a few additional compartments, which allows us to include more details/realism into our model. We again focus on tracking individuals with regard to their infection/disease status. For this model, we track the following compartments/stages:
Of course, as with the basic SIR model, this model could be made to include further details by extendind the compartments. E.g. doubling the compartments would allow us to stratify according to gender. In general, for each additional distinct feature you want to track, the existing number of compartments needs to be replicated by the discrete categories you have. So replicated by 2 for gender, replicated by 3 if we wanted to stratify by young/medium/old age, etc.
In addition to specifying the compartments of a model, we need to specify the dynamics determining the changes for each compartment. In general, more compartments leads to more processes and more parameters governing these processes.
For this model, we include the following processes:
The flow diagram and the set of ordinary differential equations (ODE) which are used to implement this model are as follows:
Flow diagram for this model.
\[\dot S = -S (b_P P + b_A A + b_I I) \] \[\dot P = S (b_P P + b_A A + b_I I) - g_P P \] \[\dot A = f g_P P - g_A A \] \[\dot I = (1-f) g_P P - g_I I \] \[\dot R = g_A A + (1-d) g_I I \] \[\dot D = d g_I I \]
A general note: Some of the tasks below (and in future apps) are fairly open ended. In general, I don’t want you to just do the tasks like a check-list. Instead, I want you to explore these simulations. Play with them, query them, go through iterations of thinking what you expect, observing it, and if discrepancies occur, figure out why. Essentially, I want you to “do science/research”.
simulate_idcharacteristics.R
. You can call this function directly, without going through the shiny app. Check the help file for the function for more information. If you go that route, you need to use the results returned from this function and produce useful output (such as a plot) yourself.Kajita, Emily, Justin T Okano, Erin N Bodine, Scott P Layne, and Sally Blower. 2007. “Modelling an Outbreak of an Emerging Pathogen.” Nature Reviews. Microbiology 5 (9): 700–709. doi:10.1038/nrmicro1660.
Milwid, Rachael, Andreea Steriu, Julien Arino, Jane Heffernan, Ayaz Hyder, Dena Schanzer, Emma Gardner, et al. 2016. “Toward Standardizing a Lexicon of Infectious Disease Modeling Terms.” Frontiers in Public Health 4: 213. doi:10.3389/fpubh.2016.00213.