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:

  • SS: susceptible
  • EE: exposed
  • II: infected
  • HH: hospitalized
  • RR: recovered
  • DD: 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 ii, λi\lambda_i, which is the per-capita rate of flow of age ii susceptibles into the exposed class (of the same age), is modelled as

λi=jcijβjIj/Nj \lambda_i = \sum_{j} c_{ij} \beta_j I_j/N_j

where

  • cijc_{ij} is the contact rate of a susceptible in age group ii with an infected in age group jj,
  • βj\beta_j is the transmission rate for age group jj,
  • IjI_j is the number of infectious individuals in age group jj,
  • NjN_j is the population size of age group jj.

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 βj\beta_j in the force of infection above,
    • c_ij: contact rate, denoted by cijc_{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.

hosp 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:

  • SS: susceptible
  • EE: exposed
  • IxI_x: infected, with fate xx, where xx is either:
    • RR, recovered without hospitalization,
    • HH, hospitalized, or
    • DD, dead
  • AyA_y: hospitalized in acute care, with fate yy, where yy is either:
    • RR, recovered after acute care only
    • CRCR, critical care with a prognosis of recovery
    • CDCD, critical care with a prognosis of death
    • DD, death after acute care only
  • RR: recovered
  • DD: 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 ii, λi\lambda_i, which is the per-capita rate of flow of age ii 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

λi=τjpijĉjIj/Nj \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),
  • pijp_{ij} is the proportion of age group ii’s contacts that occur with age group jj,
  • ĉj\hat{c}_j is the average contact rate for individuals in age group jj (across all ages),
  • IjI_j is the number of infectious individuals in age group jj (at a given time)—totalled across infectious subcategories IRI_R, IAI_A, IDI_D,
  • NjN_j is the population size of age group jj.

The average contact rate vector (ĉ\hat{c}) and the contact proportion matrix ([pij]\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, [ĉj]\left[\hat{c}_j\right], and the row-normalized version of this matrix is the contact proportion matrix ([pij]\left[p_{ij}\right]).

Input values

There are several input values for the model, summarised by the following table:

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 (see above).

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.

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:

  • SS: susceptible
  • EE: exposed
  • II: infected
  • HH: hospitalized
  • RR: recovered
  • DD: 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 ii, λi\lambda_i, which is the per-capita rate of flow of age ii 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

λi=τjpijĉjIj/Nj \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),
  • pijp_{ij} is the proportion of age group ii’s contacts that occur with age group jj,
  • ĉj\hat{c}_j is the average contact rate for individuals in age group jj (across all ages),
  • IjI_j is the number of infectious individuals in age group jj (at a given time),
  • NjN_j is the population size of age group jj.

The average contact rate vector (ĉ\hat{c}) and the contact proportion matrix ([pij]\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, [ĉj]\left[\hat{c}_j\right], and the row-normalized version of this matrix is the contact proportion matrix ([pij]\left[p_{ij}\right]).

Input values

There are several input values for the 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 following table:

Variable Description Default value Units
state A named list of the initial state for the simulation, where the name of each state follows the pattern [epi-state].j See source Number of individuals
transmissibility Transmissibility proportion, denoted by τ\tau in the force of infection described previously 0.2 -
days_incubation Average length of the incubation period 6 days
days_infectious Average length of the infectious period in days 8 days
prop_hosp Proportion of infections that are hospitalised 0.02 -
prop_IFR_all Infection Fatality Ratio across all infections 0.034 -
prop_IFR_hosp Infection Fatality Ratio across hospitalised infections 0.187 -
days_hosp Average length of hospital stay 15 days
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 previously school = 11.41 work = 8.07 household = 4.11 community = 2.79 Number of contacts per individual

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 (see above).

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.