Model Description ***************** Basic model =========== We model time :math:`t` as an *integer* with the meaning of "days since day 0", where day 0 can be chosen at will. The primary dynamic variable :math:`\delta N_{\mathrm{inf}}(t)` is the number of people being infected on day :math:`t`. The symbol :math:`\delta` indicates that this is an increment per day, not the total number of cases. The total number of people that were infected between times :math:`t_0` and :math:`t_1` is: .. math:: N_{\mathrm{inf}}(t_0,t_1) = \sum_{t=t_0}^{t_1} \delta N_{\mathrm{inf}}(t) For a population without immunity, the mean number of people infected by a single person is, by definition, given by the symbol :math:`R_0` (the basic reproduction number). For a non-zero number of immune people :math:`N_{\mathrm{imm}}`, the actual mean number of people infected by a single person :math:`R_e` equals .. math:: R_e(t) = R_0\; \left(1-\frac{N_{\mathrm{imm}}(t)}{N_{\mathrm{pop}}}\right) where :math:`N_{\mathrm{pop}}` is the total number of people in the population. The *mean* time between successive infections is called the *generation time* :math:`t_g`. It means that, on average :math:`t_g` days after being infected, a person infects :math:`R_e` further individuals with the virus. In practice this "passing on the virus" is spread over a time period, with different probabilities for different times :math:`t` after the day of infection :math:`t_i`. We describe this "time spreading function of reproduction" as :math:`P_r(t-t_i)`, with obeys the following normalization: .. math:: \sum_{t_i1` this leads to an exponential growth of :math:`\delta N_{\mathrm{inf}}(t)` that saturates as a result of herd immunity. The dynamics of the epidemic is entirely described by :math:`\delta N_{\mathrm{inf}}(t)`. Other quantities, such as the current number of ill people, the number of people in the hospital and on an intensive care unit (ICU), the number of people that have recovered or died, can all be computed from :math:`\delta N_{\mathrm{inf}}(t)`. Derived quantities ================== For practical purposes, an epidemic dynamic model should be able to predict how many people will, at some time :math:`t` in the future, be in a particular "state" (e.g. having symptoms, being in the hospital, occupying an ICU bed, or having deceased). Averaged over many different progressions of the disease, one can define a probability function :math:`p_{\mathrm{state}}(t-t_i)` for a person that has become infected on day :math:`t_i` to be in that state on day :math:`t`. These probability functions (PF) are, however, *not normalized*, because they are not probability density functions (PDFs), and because not every individual will ever acquire such a state. However, by their nature as PFs, they must obey .. math:: 0\le p_{\mathrm{state}}(t-t_i)\le 1 at all :math:`t\ge t_i`, and :math:`p_{\mathrm{state}}(t-t_i)=0` for :math:`t`_ in the summer of 2020 is likely an example of this, where the virus could, over an extended period of time, multiply in a relatively isolated community until a large fraction of that community was infected (see e.g. `here `_). In the RKI data it can be clearly seen as a "bump" in the total number of reported new infections around June, which then spread to other regions of Germany and dissipated as a result of the overall negative :math:`R_0-1` in Germany at that time. This shows that even if one group is relatively isolated from the rest of society, if an epidemic is out of control in this group, the epidemic dynamics of society can become "enslaved" by the epidemic dynamics within the semi-isolated group (see e.g. the Keeling and Rohani book). Note that this is different from a "superspreading event", in which a single (or a few) people infect a very large number of people all at once due to circumstances that are exceptionally conducive to viral spread. Most "groups" within a society are not so strongly isolated, and if contacts between groups are very common, there is no need to treat the groups separately in a model. The mean :math:`R_0` value will then be enough to make reliable predictions. But there are intermediate cases that are of particular interest. For instance, the attempts to isolate the elderly. Particularly the elderly in nursing homes are, out of necessity, in regular contact with nursing personnel. The degree of care taken to avoid cross infection from nursing personnel to patients determines the rate of cross-infection. How careful do they have to be to be successful in case the epidemic gets out of hand? Another example is the role of subcommunities of young people, some of whom may behave less careful than the rest of the population. How dangerous is this? None of these questions can be easily quantitatively answered, because the knowledge of the parameters is unavailable. But some simple scenarios can be tested. In the multi-group model, :math:`\delta N_{\mathrm{inf}}(t)` is replaced by :math:`\delta N_{\mathrm{inf},k}(t)`, where :math:`k` is the index of the group. Python counts array indices from 0, so :math:`k\;\in [0,n-1]` with :math:`n` being the number of groups. The epidemic dynamic equation then becomes .. math:: \delta N_{\mathrm{inf},k}(t) = \sum_{l=0}^{n-1} \sum_{t_i