:class:`SIR`: The SIR process
=============================
.. currentmodule:: epydemic
.. autoclass:: SIR
The Synchronous-Infected-Recovered or SIR process is one of the oldest
models of disease, first arising in a paper by :ref:`Kermack and
McKendrick ` in 1927.
Nodes in the network represent individuals, with edges representing
contacts between them. Each individual is assigned a dynamical state
which changes according to the rules of the model.
SIR is a :term:`compartmented model of disease` with three :term:`compartments`:
* *Susceptible (S)*, when an individual be infected with the disease;
* *Infected (I)*, when an individual can infect neighbouring susceptible
individuals; and
* *Removed (R)*, when an individual has recovered from the infection and
neither infects nor can be infected.
Essentially a removed individual takes no further part in the
dynamics.
Dynamical states
----------------
SIR simulation places nodes into one of three compartments:
.. autoattribute:: SIR.SUSCEPTIBLE
.. autoattribute:: SIR.INFECTED
.. autoattribute:: SIR.REMOVED
Parameters
----------
The process is parameterised by three parameters:
.. autoattribute:: SIR.P_INFECTED
.. autoattribute:: SIR.P_INFECT
.. autoattribute:: SIR.P_REMOVE
The :attr:`SIR.P_INFECTED` parameter defines the proportion of nodes
that are initially placed into the :attr:`SIR.INFECTED` compartment, with
all other nodes being placed into the :attr:`SIR.SUSCEPTIBLE` compartment.
Dynamics
--------
Dynamics in SIR occurs in two places:
* At infected nodes, which which are removed with a probability given
by the :attr:`SIR.P_REMOVE` parameter; and
* At SI edges, where the node at one endpoint is susceptible and the
node at the other is infected.
These two options define the loci for the SIR model.
.. autoattribute:: SIR.SI
The other locus is named :attr:`SIR.INFECTED`, the same as the
compartment.
Building the model
------------------
Building the model creates the three epidemic compartments and
installs the necessary loci and events to define the disease
dynamics. The event methods are described more thoroughly below.
.. automethod:: SIR.build
Event methods
-------------
Event methods are defined for each of the two dynamical rules for the
process: infection and removal (recovery).
.. automethod:: SIR.infect
.. automethod:: SIR.remove