SIR Epidemiology model

class pints.toy.SIRModel(y0=None)[source]

The SIR model of infectious disease models the number of susceptible (S), infected (I), and recovered (R) people in a population [1], [2].

The particular model given here is analysed in [3],_ and is described by the following three-state ODE:

\[ \begin{align}\begin{aligned}\dot{S} = -\gamma S I\\\dot{I} = \gamma S I - v I\\\dot{R} = v I\end{aligned}\end{align} \]

Where the parameters are gamma (infection rate), and v, recovery rate. In addition, we assume the initial value of S, S0, is unknwon, leading to a three parameter model (gamma, v, S0).

The number of infected people and recovered people are observable, making this a 2-output system. S can be thought of as an unknown number of susceptible people within a larger population.

The model does not account for births and deaths, which are assumed to happen much slower than the spread of the (non-lethal) disease.

Real data is included via suggested_values(), which was taken from [3], [4], [5].

Extends pints.ForwardModel, pints.toy.ToyModel.

Parameters:

y0 – The system’s initial state, must have 3 entries all >=0.

References

n_outputs()[source]

See pints.ForwardModel.n_outputs().

n_parameters()[source]

See pints.ForwardModel.n_parameters().

simulate(parameters, times)[source]

See pints.ForwardModel.simulate().

suggested_parameters()[source]

Returns a suggested set of parameters for this toy model.

suggested_times()[source]

Returns a suggested set of simulation times for this toy model.

suggested_values()[source]

Returns the data from a common-cold outbreak on the remote island of Tristan da Cunha, as given in [3], [4], [5].