CovidSIRDc¶
- class aftercovid.models.CovidSIRDc[source]¶
Inspiration Modelling some COVID-19 data. This model considers that observed data are not the true ones.
\[\begin{split}\begin{array}{rcl} S &=& S_{obs} (1 + a)\\ I &=& I_{obs} (1 + b)\\ R &=& R_{obs} (1 + c)\\ D &=& D_{obs} \end{array}\end{split}\]Where \(S\), \(I\), \(R\) are \(R_{obs}\) are observed. hidden, only \(S_{obs}\), \(I_{obs}\), The following equality should be verified: \(S + I + R + D = N = S_{obs} + I_{obs} + R_{obs} + D_{obs}\). We also get from the previous equations:
\[\begin{split}\begin{array}{rcl} dS &=& dS_{obs} (1 + a) = - \beta \frac{IS}{N} = - \beta \frac{I_{obs}S_{obs}}{N}(1+a)(1+b) \\ \Longrightarrow dS_{obs} &=& - \beta \frac{I_{obs}S_{obs}}{N}(1+b) \end{array}\end{split}\]And also:
\[\begin{array}{rcl} dD &=& dD_{obs} = \nu I = \nu I_{obs} (1+b) \end{array}\]And as well:
\[\begin{split}\begin{array}{rcl} dR &=& dR_{obs} (1 + c) = \mu I = \mu (1 + b) I_{obs} \\ \Longrightarrow dR_{obs} &=& - \nu I_{obs} \frac{1+b}{1+c} \end{array}\end{split}\]And finally:
\[\begin{split}\begin{array}{rcl} dI &=& dI_{obs} (1 + b) = -dR - dS - dD = - \mu \frac{1 + b}{1+ c} I_{obs} - \nu (1+b) I_{obs} - - \beta I_{obs}\frac{S_{obs}}{N} (1 + a)(1 + b) \\ \Longrightarrow dI_{obs} &=& - \nu I_{obs} - \mu I_{obs} - \beta I_{obs}\frac{S_{obs}}{N} (1 + a) \end{array}\end{split}\]This model should still verify:
\[\begin{split}\begin{array}{rcl} S_{obs} + I_{obs} + R_{obs} + D_{obs} &=& N = S + I + R + D \\ &=& S_{obs}(1+a) + I_{obs}(1+b) + R_{obs}(1+c) + D_{obs} \end{array}\end{split}\]That gives \(a S_{obs} + b I_{obs} + c R_{obs} = 0\).
<<<
from aftercovid.models import CovidSIRDc model = CovidSIRDc() print(model.to_rst())
>>>
CovidSIRDc
Quantities
S: personnes non contaminées
I: nombre de personnes malades ou contaminantes
R: personnes guéries (recovered)
D: personnes décédées
Constants
N: population
Parameters
beta: taux de transmission dans la population
mu: 1/. : durée moyenne jusque la guérison
nu: 1/. : durée moyenne jusqu’au décès
a: paramètre gérant les informations cachées (S)
b: paramètre gérant les informations cachées (I)
c: paramètre gérant les informations cachées (R)
Equations
\[\begin{split}\begin{array}{l} \frac{dD}{dt} = I \nu \left(b + 1\right) \\ \frac{dI}{dt} = - I \mu - I \nu + \frac{I S \beta \left(a + 1\right)}{N} \\ \frac{dR}{dt} = \frac{I \mu \left(b + 1\right)}{c + 1} \\ \frac{dS}{dt} = - \frac{I S \beta \left(b + 1\right)}{N} \end{array}\end{split}\]SIRDc simulation and plotting
(
Source code
,png
,hires.png
,pdf
)Visual representation:
See Base implementation for SIR models to get the methods common to SIRx models. This model is not really working better than
CovidSIRD
.- R0(t=0)[source]¶
Returns R0 coefficient. See
CovidSIRD.R0
- static add_noise(X, epsilon=1.0)[source]¶
Tries to add reasonable noise to the quantities stored in X.
- Parameters:
epsilon – amplitude
- Returns:
new X
- correctness(X=None)[source]¶
Returns \(a S_{obs} + b I_{obs} + c R_{obs} = 0\).
- Parameters:
X – None to use inner quantities
- Returns:
a number
- update_abc(X=None, update=True, alpha=1.0, l1_ratio=0.5)[source]¶
Updates coefficients a, b, c so that method
correctness
returns 0. It uses ElasticNet.- Parameters:
X – None to use inner quantities
update – True to update to the coefficients or False to just return the results
alpha – see ElasticNet
l1_ratio – see ElasticNet
- Returns:
dictionary