Skip to content

Proposed validation tests

KevinMcCarthyAtIDM edited this page May 13, 2024 · 33 revisions

Single-node tests

SI model without demography

Without demography, the SI model is as follows:

$\frac{dS}{dt} = -\beta\frac{SI}{N}$

$\frac{dI}{dt} = \beta\frac{SI}{N} = \beta I(1-\frac{I}{N})$

The last is a standard form logistic equation, with solution

$(1) \qquad I(t) = \frac{N}{1+(\frac{N-I_0}{I_0})e^{-\beta t}}$

as expected, with $I=I_0$ at $t=0$, and $I \rightarrow N$ as $t \rightarrow \infty$. This is a straightforward formula against which model outputs can be tested

SI model with constant-population demography (birth rate = death rate)

Adding demography, with births = deaths to keep population constant, we have

$\frac{dS}{dt} = -\beta\frac{SI}{N} +\mu N - \mu S$

$\frac{dI}{dt} = \beta\frac{SI}{N} -\mu I = \beta I ( 1-\frac{\mu}{\beta} - \frac{I}{N} )$

This can again be cast into the form of a logistic equation:

$\frac{dI}{dt} = (\beta-\mu) I (1 - \frac{I}{N(1-\frac{\mu}{\beta})}) $

The solution for $I(t)$ is analogous to (1) above with appropriate replacements: $\beta \rightarrow (\beta-\mu)$ and $N \rightarrow N (1-\frac{\mu}{\beta}) $.

Again, validation tests could fit the timeseries $I(t)$ against the formula. As $t\rightarrow \infty$, $I$ should tend to $N * ( 1 - \frac{\mu}{\beta})$.

SIR/SEIR model outbreak size and duration

Below are the SEIR model equations with constant-population demography and no disease deaths

$\frac{dS}{dt} = -\beta\frac{SI}{N} + \mu N - \mu S$

$\frac{dE}{dt} = \beta\frac{SI}{N} - \sigma E - \mu E$

$\frac{dI}{dt} = \sigma E - \gamma I - \mu I $

$\frac{dR}{dt} = \gamma I - \mu R$

In this model,

$R_0 = \frac{\sigma}{\mu + \sigma} \frac{\beta}{\gamma+\mu}$

And for diseases in which the exposed and infectious periods are short compared to the average lifespan (i.e,. $\gamma, \sigma >> \mu$), a very good approximation is

$R_0 = \frac{\beta}{\gamma}$

The final size $Z$ of a disease outbreak in this population is given implicitly, by the formula: $Z = \Sigma I = S_{\inf} - S_0 = S_0 (1-e^{-R_0 (Z+I_0) })$

SIR/SEIR model average age at infection

The impact of age is not obvious from the above framing of the model, but is another very important validation test as we use age-at-infection data all the time in calibration. (add refs to age-dependent versions of the model, or catalytic models). We can argue, however, that in an endemic equilibrium, all agents should be exposed to a constant risk of infection per unit time, giving rise to an exponential distribution of time to first (and in this model, only) infection. It can be shown that the average age at infection should be

$\overline{A} = \frac{1}{(R_0-1) \mu} = \frac{1}{\mu (\frac{\beta}{\gamma}-1)}$

Which uniquely defines the distribution of age at infection

$I(a) \sim \frac{1}{\overline{A}}e^{-\frac{a}{\overline{A}}}$

And the equilibrium age distribution of immunity should be the corresponding cumulative distribution function

$R(a) \sim 1 - e^{-\frac{a}{\overline{A}}}$

which is useful both for validation and for initializing near the equilibrium.

When a model features age-structured mixing / force of infection vs. age functions, there are similar analytically tractable solutions in terms of piecewise exponentials, readily derivable from results in statistical survival analysis or what is called the catalytic model in disease modeling land. A very common modeling representation features a force of infection that is constant in time, and age-dependent but constant within $A$ age-groups

$\lambda(a) = \sum\limits_{a'=0}^{A}{\beta(a, a') I(a')}$

The resulting age distribution of infection will be

$I(a) \sim e^{-\sum\limits_{a=0}^{a-1}{\lambda(a)}}(1-e^{-\lambda(a)})$

Resonant frequency of S(E)IR model

Without any forcing terms in the equations (birth seasonality, beta seasonality, etc.), the system should exhibit a natural resonant period. There are a number of ways to analytically get at this; I find the simplest approximation to be:

$T = 2 \pi \sqrt{\overline{A} G}$

where $G$ is the generation time of infections, $G = \frac{1}{\mu + \gamma} + \frac{1}{\mu + \sigma} \approx \frac{1}{\gamma} + \frac{1}{\sigma}$.

SIS model

Multi-node metapopulation simulations

Here it is a bit trickier to find distinct, mathematical relationships that should be reproducible across simulations, but I'm looking. The paper here Kevin McCarthy: Interesting looking review of disease models with movement components might be a good source of potential references.

The paper I link here: Kevin McCarthy: Another review of movement models in disease modeling considers an SIR model of disease with diffusive elements in space to represent movement

$\frac{\partial S}{\partial t} = D_S \frac{\partial^2 S}{\partial x^2} - \beta S I$

$\frac{\partial I}{\partial t} = D_I \frac{\partial^2 I}{\partial x^2} + \beta S I - \gamma I$

The R class is implicit here. The manuscript lists a formula for the resultant wavespeed c which may be useful as a validation parameter.

$c \geq c_0 = 2\sqrt{\beta S_0 D_I (1 - \frac{\gamma}{\beta S_0})}$

As a test, this might be something worth looking into, though it's worth looking with caution - first, I believe this formula is for 1-D diffusion in a line, which we can do but a more interesting case would be 2-D diffusion on the plane. Second, we'd need a close look at how taking this PDE into a finite timestep regime, with the same constant timesteps for both the reaction and diffusion terms, impacts the observed wavespeed. If we do use this as a test, I believe that when we discretize space, the proper migration matrix will be a Gaussian kernel, not a nearest-neighbor kernel which would probably substantially slow the spatial progression of infection.

Clone this wiki locally