SIMID | Simulation Models of Infectious Disease

Including morphology


Up to now, we didn’t pay attention to effects which become important on longer time scales. People die, new babies are born and people ages, such that there is a migration across the age-classes. We will first implement the birth and death rates in the SIR model.

The amount of births can be approximated by exponential growth. In this model the new births are proportional to the population size $N=S+I+R$. Therefore there exists a constant $\mu_B$ such that $\mu_B N$ gives the total births in some time span. We assume that no babies are born infected and none of them are immune hence all births are added in the $S$ class.
The number of deaths is also proportional to the population size, each time span a fraction $\mu_D N$ of the population will die, where $\mu_D$ is the death rate. The difference with the birthrate is that death will take place in both the $S,I$ and $R$ class. We assume that the disease does not affect the death rate of infected people such that $\mu_B$ is constant over the three classes. The adjusted SIR model becomes:

\[ \def\arraystretch{1.5} \left\{ \begin{array}{ll} S_{t+1} = S_t –  b I_t S_t+\mu_B N-\mu_D S_t \\
I_{t+1} = I_{t} + b I_t S_t- w I_t-\mu_D I \\
R_{t+1} = R_t  +wI_t-\mu_D R \end{array}. \right \]

This is again deterministic, it is better to take the number of births from a Poisson distribution with event rate $\mu_B N$. Accordingly the number of deaths from each of the classes ($S,I$ and $R$) is taken from a binomial distribution, with parameters the size of the class and proportion $1-e^{-\mu_D}$. We will mix the Poisson and binomial distribution from time to time. When considering a subdivided population the SIR model can be extended easily to include morphology and becomes
\begin{equation} \def\arraystretch{1.5} \left\{ \begin{array}{ll}  S^i_{t+1} = S^i_t –  \sum_{j=1}^k \beta_{ij} I^j_t S^i_t- \mu_D S^i_t\\  I^i_{t+1} = I^i_{t} + \sum_{j=1}^k \beta_{ij} I^j_t S^i_t- w I^i_t- \mu_D I^i_t \\  R^i_{t+1} = R^i_t  +wI^i_t  – \mu_D R^i_t\end{array}. \right \end{equation}

Cohort model

Consider a group of newborns. We are interested in the spread of the disease when this group evolves over the years, this models the spread of an infection over each age-class. We are interested in the information of the group members. However during the years group members can also be infected by other people from other ages. In general we will have to consider again all age-classes of the whole population and their interaction with each other to be able to get the disease spread over one particular age-class.

However we can proceed in an easier, faster way using the force of infection. We previously defined the force of infection as the ratio
\[ \frac{ \text{the number of new infections}}{\text{the number of susceptibles} \times \text{time}}, \] denoted by $\lambda$. We can combine this with the idea of subdividing a population in subclasses like we did before. The equation gouverning the number of infections in a subclasse was given by
\begin{equation} \label{eq:inf} I^i_{t+1} = I^i_{t} + S^i_t\sum_{j=1}^k \beta_{ij} I^j_t- w I^i_t. \end{equation}
The analog of the force of infection, as previously defined, for a multi-class population can quickly be deduced from (2). Define the force of infection of sub-class $i$, denoted by $\lambda^i$, as $\sum_{j=1}^k \beta_{ij} I^j_t$. The meaning of this is the ratio
\[ \frac{ \text{the number of new infections in class $i$}}{\text{the number of susceptible of class $i$} \times \text{time}}. \]
As before we can calculate the rate of new infected people, now in sub-class $i$, as $\lambda^i S^i$. If somehow we were given the force of infection of a sub-class $i$, we would be able to calculate the number of infections each time of that sub-class without knowing the disease spread in the other classes.

Consider now back the case of a group of newborns in a population subdivided in age-classes. In the first year the infection is gouverned by the force of infection of the first class (0-1y). When a year has passed it is given by the force of infection of the second class (1-2y), and so on. In this manner we are able to study the spread of the disease when the group members become older and thus get an idea of the impact of the disease on different ages.

This method is applied to the simulations below. The population is subdivided into 80 age-classes ranging from 0-1y to 79-80y. The force of infection information of each class is given in the ‘ foi.txt’ -file. The previous considerations on birth and death rates were neglected in the first simulation and were included in the second, but only after a year has passed.

SIR-Binomial(FOI) and morphology

In the numerical calculations of the first simulation the time per step was a year, while in the second it was a day. However the death and birth events were only taken in account on a yearly base.

All age-classes with the force of infection

Instead of calculating the disease spread in a group of people at the same age, we can model all the classes of a population. This isn’t very different as before. Instead of just calculating formula $(2)$ for one class, we do the same for each class. The only thing to consider is when a year has passed all persons in class $i$ have aged a year and so has to be put in the class $i+1$. In the following simulation this shifting is done each year. However the simulation assumes death only takes place on people at 80y (the last agegroup) and that the number of births is the same as the number of deaths. Births are added in first class which is made empty after shifting the ages. The following simulation uses first the FOI-approach and secondly an homogeneous contact matrix.

SIR-Binomial(FOI+homogeneous) ageing and morphology_death=birth

We did another simulation below (only FOI), in this simulation we included a death rate at each age-class. The people left at an age of 80 (the last agegroup) are presumed to die after a year. We also included a birth rate. Both death and birth rates were included after each year.

SIR-Binomial(FOI) ageing morphology birth and death

The previous two simulations included death on a yearly base. However we can also progress by calculating the daily number of deaths.  This is done in the next simulation.

SIR-Binomial(FOI) ageing morpholy birth(yearly) and death(daily)

One can go a step further and calculate the births daily. However once a year has passed and all age-classes are shifted by 1, the 0-1y age-class is empty. After the start of each year we add births daily to the first class and hence refilling it. See the next simulation for more details.

SIR-Binomial(FOI) ageing morhpology birth and death daily

Contact matrix and morphology

As we combined the force of infection approach with birth and death rates, The same can be done with the contact matrix approach using (1).  After a year has passed we shift all classes by one like before. The new age-class 0-1y is then given by the birth rate $\mu_B N$, where $N$ is the total population size. There is a choice in calculating the number of deaths. We can calculate the deaths year-wise or each day.

The above considerations are simulated in the links below. The first handles the influence of death once in a year while the second calculates it every day. The contact matrix is taken to be homogeneous.

SIR homogeneous mixing morphology death year
SIR homogeneous mixing morphology death day

Like the paragraph ended with including birth on a daily base in the FOI approach, we will end the tutorial here with a last simulation which simulates the above homogeneous mixing model with births on a daily base.

SIR homogeneous mixing morhpology birth and death daily