[CovsirPhy] Package Python COVID-19 pour l'analyse des données: modèle SIR

Introduction

Nous créons un package Python CovsirPhy qui vous permet de télécharger et d'analyser facilement les données COVID-19 (comme le nombre de PCR positifs). Nous prévoyons de publier des articles sur des exemples d'analyse en utilisant des packages et des connaissances acquises lors de leur création (Python, GitHub, Sphinx, ...).

La version anglaise du document est CovsirPhy: COVID-19 analysis with phase-depend SIRs, Kaggle: COVID-19 data with SIR model.

** Cette fois, nous présenterons le modèle de base modèle SIR. ** Aucune donnée réelle n'est disponible. Version anglaise: Utilisation (détails: ensembles de données théoriques)

1. Environnement d'exécution

CovsirPhy peut être installé par la méthode suivante! Veuillez utiliser Python 3.7 ou supérieur, ou Google Colaboratory.

--Version stable: pip install covsirphy --upgrade --Version de développement: pip install" git + https://github.com/lisphilar/covid19-sir.git#egg=covsirphy "

#Pour l'affichage des données
from pprint import pprint
# CovsirPhy
import covsirphy as cs
cs.__version__
# '2.8.0'
Environnement d'exécution
OS Windows Subsystem for Linux
Python version 3.8.5

2. Qu'est-ce que le modèle SIR?

Lorsque des contacts sensibles sont infectés, la probabilité d'être infecté est définie comme Taux de contact effectif $ \ beta $ [1 / min]. $ \ Gamma $ [1 / min] est la probabilité de transition d'infecté à récupéré [^ 1] [^ 2].

\begin{align*}
\mathrm{S} \overset{\beta I}{\longrightarrow} \mathrm{I} \overset{\gamma}{\longrightarrow} \mathrm{R}  \\
\end{align*}

3. Équations différentielles normales simultanées

En tant que population totale $ N = S + I + R $

\begin{align*}
& \frac{\mathrm{d}S}{\mathrm{d}T}= - N^{-1}\beta S I  \\
& \frac{\mathrm{d}I}{\mathrm{d}T}= N^{-1}\beta S I - \gamma I  \\
& \frac{\mathrm{d}R}{\mathrm{d}T}= \gamma I  \\
\end{align*}

4. Paramètres non dimensionnels

Vous pouvez le gérer tel quel, mais il sera sans dimension car la plage de paramètres est limitée à $ (0, 1) $. Bien que cela ne soit pas mentionné dans cet article, il est efficace lors du calcul des paramètres à partir de données réelles.

$ (S, I, R) = N \ fois (x, y, z) $, $ (T, \ beta, \ gamma) = (\ tau t, \ tau ^ {-1} \ rho, \ tau ^ {-1} \ sigma) $, $ 1 \ leq \ tau \ leq 1440 $ [min]

\begin{align*}
& \frac{\mathrm{d}x}{\mathrm{d}t}= - \rho x y  \\
& \frac{\mathrm{d}y}{\mathrm{d}t}= \rho x y - \sigma y  \\
& \frac{\mathrm{d}z}{\mathrm{d}t}= \sigma y  \\
\end{align*}

En ce moment,

\begin{align*}
& 0 \leq (x, y, z, \rho, \sigma) \leq 1  \\
\end{align*}

5. (De base / effective) Nombre de reproductions

(De base / Effectif) Numéro de reproduction Le numéro de reproduction est défini comme suit [^ 3].

\begin{align*}
R_t = \rho \sigma^{-1} = \beta \gamma^{-1}
\end{align*}

6. Exemple de données

Définissez le paramètre $ (\ rho, \ sigma) = (0,2, 0,075) $ et la valeur initiale et le graphique.

# Parameters
pprint(cs.SIR.EXAMPLE, compact=True)
# {'param_dict': {'rho': 0.2, 'sigma': 0.075},
# 'population': 1000000,
# 'step_n': 180,
# 'y0_dict': {'Fatal or Recovered': 0, 'Infected': 1000, 'Susceptible': 999000}}

(Basique / Effectif) Nombre de reproductions:

# Reproduction number
eg_dict = cs.SIR.EXAMPLE.copy()
model_ins = cs.SIR(
    population=eg_dict["population"],
    **eg_dict["param_dict"]
)
model_ins.calc_r0()
# 2.67

affichage graphique:

# Set tau value and start date of records
example_data = cs.ExampleData(tau=1440, start_date="01Jan2020")
# Add records with SIR model
model = cs.SIR
area = {"country": "Full", "province": model.NAME}
example_data.add(model, **area)
# Change parameter values if needed
# example_data.add(model, param_dict={"rho": 0.4, "sigma": 0.0150}, **area)
# Records with model variables
df = example_data.specialized(model, **area)
# Plotting
cs.line_plot(
    df.set_index("Date"),
    title=f"Example data of {model.NAME} model",
    y_integer=True,
    filename="sir.png "
)

sir.png

7. La prochaine fois

Présentation du modèle modèle SIR-F, qui est une version modifiée du modèle de base modèle SIR pour COVID-19.

Recommended Posts

[CovsirPhy] Package Python COVID-19 pour l'analyse des données: modèle SIR
[CovsirPhy] Package Python COVID-19 pour l'analyse des données: chargement des données
[CovsirPhy] Package Python COVID-19 pour l'analyse des données: analyse des tendances S-R
[CovsirPhy] Package Python COVID-19 pour l'analyse des données: estimation des paramètres
[CovsirPhy] Package Python COVID-19 pour l'analyse de données: analyse de scénario (comparaison de paramètres)
Python pour l'analyse des données Chapitre 4
Python pour l'analyse des données Chapitre 2
Python pour l'analyse des données Chapitre 3
Modèle de prétraitement pour l'analyse des données (Python)
Outil de visualisation Python pour le travail d'analyse de données
Analyse de données python
Analyse de données avec python 2
Présentation de l'analyse de données python
Modèle d'analyse de données Python
Analyse de données avec Python
Analysons les données Covid-19 (Corona) en utilisant Python [Pour les débutants]
Analyse de données pour améliorer POG 1 ~ Web scraping avec Python ~
[Pour les débutants] Comment étudier le test d'analyse de données Python3
Simulation COVID-19 avec python (modèle SIR) ~~ avec carte de chaleur préfectorale ~~
Mon conteneur d'analyse de données python
[Python] Notes sur l'analyse des données
Notes d'apprentissage sur l'analyse des données Python
Analyse de données à l'aide de pandas python
Conseils et précautions lors de l'analyse des données
[Comprendre au plus court] Principes de base de Python pour l'analyse des données
Lequel dois-je étudier, R ou Python, pour l'analyse des données?
<Python> Construisez un serveur dédié pour l'analyse des données Jupyter Notebook
Introduction à la modélisation statistique pour l'analyse des données Sélection du modèle GLM
Python: analyse des séries chronologiques: prétraitement des données des séries chronologiques
Cours Python pour la science des données - techniques utiles
Pratique de l'analyse de données par Python et pandas (Tokyo COVID-19 data edition)
Analyse de données pour améliorer POG 3 ~ Analyse de régression ~
Formatage des données pour les graphiques Python / couleur
Analyse de données à partir de python (visualisation de données 1)
Analyse de données à partir de python (visualisation de données 2)
Créer un Ubuntu de démarrage USB avec un environnement Python pour l'analyse des données
Résumé du livre électronique Python utile pour l'analyse de données gratuite
Techniques Python détaillées requises pour la mise en forme des données (1)
[Python] Première analyse de données / apprentissage automatique (Kaggle)
Analyse de données à partir de python (pré-traitement des données-apprentissage automatique)
Comment utiliser "deque" pour les données Python
Techniques Python détaillées requises pour la mise en forme des données (2)
J'ai suivi une formation à l'analyse de données Python à distance
Préparation à l'examen d'analyse de données certifié Python 3 Engineer
JupyterLab Basic Setting 2 pour l'analyse des données (pip)
Configuration de base de JupyterLab pour l'analyse des données (pip)
Analyse des données en Python Résumé des sources que les débutants devraient d'abord consulter
Python: analyse des séries temporelles: création d'un modèle SARIMA
[Introduction au modèle SEIR] Essayez d'ajuster les données COVID-19 ♬
Analyse des données pour améliorer POG 2 ~ Analyse avec le notebook jupyter ~
Modèle Python qui effectue une analyse des journaux à une vitesse explosive
Préparer un environnement de langage de programmation pour l'analyse des données
Test d'analyse des données de certification d'ingénieur Python3
Python: Analyse des séries temporelles: Constantity, modèle ARMA / ARIMA
Formation préalable à l'examen d'analyse des données de certification d'ingénieur Python 3
Introduction à la modélisation statistique pour l'analyse des données
Comment utiliser les outils d'analyse de données pour les débutants