Skip to contents

old-and-young model

This version of the model features a basic epidemiological structure stratified with two age groups: young and old. The epidemiological compartments are:

  • \(S\): susceptible
  • \(E\): exposed
  • \(I\): infected
  • \(H\): hospitalized
  • \(R\): recovered
  • \(D\): dead

The flows within each age group are as follows:

The solid lines indicate flows between compartments and the dashed lines indicate when a compartment is involved in calculating a flow rate.

Age-based transmission

The force of infection for age group \(i\), \(\lambda_i\), which is the per-capita rate of flow of age \(i\) susceptibles into the exposed class (of the same age), is modelled as

\[ \lambda_i = \sum_{j} c_{ij} \beta_j I_j/N_j \]

where

  • \(c_{ij}\) is the contact rate of a susceptible in age group \(i\) with an infected in age group \(j\),
  • \(\beta_j\) is the transmission rate for age group \(j\),
  • \(I_j\) is the number of infectious individuals in age group \(j\),
  • \(N_j\) is the population size of age group \(j\).

Input values

There are several input values for the base model. Some inputs are stratified by age group (with suffix _y for young and _o for old). We use the generic suffix _j to denote inputs for age group j in the list below:

  • state: a named list of the initial state for the simulation, where the name of each state follows the pattern [epi-state]_j
  • params: a named list of model parameters used to compute flow rates, including
    • transmission_j: transmission rate, denoted by \(\beta_j\) in the force of infection above,
    • c_ij: contact rate, denoted by \(c_{ij}\) in the force of infection above,
    • progression_j: rate of flow from exposed to infectious,
    • recovery_j: rate of flow from infectious to recovered,
    • hospitalization_j: rate of flow from infectious to hospitalized,
    • discharge_j: rate of from from hospitalized to recovered,
    • deathH_j: rate of flow from hospitalized to dead,
    • deathI_j: rate of flow from infectious to dead.

Optional (scenario-specific) input values are documented in the next section.

Available scenarios

change-transmission scenario

This scenario simulates two changes in the age-dependent transmission rates on specific days.

Intervention days are specified through the intervention.day input value. The default values yield changes on days 40 and 50.

Scalar multiples of the original transmission rates are specified via the trans.factor.young and trans.factor.old input values, for the young and old, respectively. The default values reduce the transmission rate to 50% then 10% of the original value across both age groups.

five-year-age-group model

This version of the model features a basic epidemiological structure stratified with five-year age groups up to age 80. The epidemiological compartments are:

  • \(S\): susceptible
  • \(E\): exposed
  • \(I\): infected
  • \(H\): hospitalized
  • \(R\): recovered
  • \(D\): dead

The flows within each age group are as follows:

The solid lines indicate flows between compartments and the dashed lines indicate when a compartment is involved in calculating a flow rate.

Age-based transmission

The force of infection for age group \(i\), \(\lambda_i\), which is the per-capita rate of flow of age \(i\) susceptibles into the exposed class (of the same age), is modelled as

The force of infection for occurs in an age-based way, as a proxy for population heterogeneity. The transmission rate for susceptibles of age i and infectious individuals of age j is calculated as

\[ \lambda_i = \tau \sum_{j} p_{ij} \hat{c}_j I_j/N_j \]

where

  • \(\tau\) is the transmissibility of the pathogen, quantified as the proportion of contacts between a susceptible and an infectious individual that yield transmission (independent of age),
  • \(p_{ij}\) is the proportion of age group \(i\)’s contacts that occur with age group \(j\),
  • \(\hat{c}_j\) is the average contact rate for individuals in age group \(j\) (across all ages),
  • \(I_j\) is the number of infectious individuals in age group \(j\) (at a given time),
  • \(N_j\) is the population size of age group \(j\).

The average contact rate vector (\(\hat{c}\)) and the contact proportion matrix (\(\left[p_{ij}\right]\)) are both generated using a weighted average of four setting-based component contact matrices, derived by Mistry et al (2021), which reflect contacts in households, workplaces, schools, and community (all other contacts outside of the three previous settings). The weights are the average overall contact rate per setting. This weighted average generates an overall contact matrix. The row sums of this matrix give the average contact rate vector, \(\left[\hat{c}_j\right]\), and the row-normalized version of this matrix is the contact proportion matrix (\(\left[p_{ij}\right]\)).

Input values

There are several input values for the base model. Some inputs are stratified by age group (with suffix .lb[digit], where [digit] denotes the lower bound of the age group. For example, .lb50 denotes the 50-54 age group. We use the generic suffix .j to denote inputs for age group j in the list below:

  • state: a named list of the initial state for the simulation, where the name of each state follows the pattern [epi-state].j
  • flow: a named list of flow rates, including
    • progression.j: rate of flow from exposed to infectious,
    • recovery.j: rate of flow from infectious to recovered,
    • hospitalization.j: rate of flow from infectious to hospitalized,
    • discharge.j: rate of from from hospitalized to recovered,
    • death_H.j: rate of flow from hospitalized to dead,
    • death_I.j: rate of flow from infectious to dead
  • transmissibility: transmissibility proportion, denoted by \(\tau\) in the force of infection above,
  • setting.weight: vector of weights for the setting-specific component contact matrices, where each weight gives the average contact rate per setting across all ages, as described above.

Optional (scenario-specific) input values are documented in the next section.

Available scenarios

change-contacts scenario

This scenario enables the simulation of an intervention that affects the age-based contact patterns starting on a specified day from the start of the simulation (the “intervention day”).

The intervention day is specified with the intervention.day input value. The default value simulates a stay-at-home order starting on day 25.

An intervention involves using a new contact matrix starting on the intervention day, which is generated with new setting weights, specified in the setting.weight.new input value. The default values reflect closing all schools, 50% of workplaces, and reducing community contacts by 75% from the default setting.weight input value.

The user can also change overall transmissibility of the pathogen starting on the intervention day to some scalar multiple of the original value via the trans.factor input value. The default values include trans.factor = 1, so no change to underlying transmissibility.