[CovsirPhy] COVID-19 Python-Paket für die Datenanalyse: SIR-Modell

Introduction

Wir erstellen ein Python-Paket CovsirPhy, mit dem Sie COVID-19-Daten (z. B. die Anzahl der PCR-Positiven) einfach herunterladen und analysieren können. Wir planen, Artikel zu Analysebeispielen mithilfe von Paketen und den dabei erstellten Kenntnissen (Python, GitHub, Sphinx, ...) zu veröffentlichen.

Die englische Version des Dokuments lautet CovsirPhy: COVID-19-Analyse mit phasenabhängigen SIRs, Kaggle: COVID-19-Daten mit SIR-Modell.

** Dieses Mal werde ich das Basismodell SIR vorstellen. ** Es sind keine aktuellen Daten verfügbar. Englische Version: Verwendung (Details: theoretische Datensätze)

1. Ausführungsumgebung

CovsirPhy kann mit der folgenden Methode installiert werden! Bitte verwenden Sie Python 3.7 oder höher oder Google Colaboratory.

--Stabile Version: pip install covsirphy --upgrade

#Zur Datenanzeige
from pprint import pprint
# CovsirPhy
import covsirphy as cs
cs.__version__
# '2.8.0'
Ausführungsumgebung
OS Windows Subsystem for Linux
Python version 3.8.5

2. Was ist das SIR-Modell?

Wenn Susceptible mit Infected in Kontakt kommt, wird die Wahrscheinlichkeit einer Infektion als effektive Kontaktrate $ \ beta $ [1 / min] definiert. $ \ Gamma $ [1 / min] ist die Wahrscheinlichkeit des Übergangs von Infiziert zu Wiederhergestellt [^ 1] [^ 2].

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

3. Gleichzeitige normale Differentialgleichungen

Als Gesamtbevölkerung $ 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. Nicht dimensionale Parameter

Sie können damit umgehen, aber es ist dimensionslos, da der Parameterbereich auf $ (0, 1) $ begrenzt ist. Obwohl in diesem Artikel nicht erwähnt, ist es effektiv bei der Berechnung von Parametern aus tatsächlichen Daten.

$ (S, I, R) = N \ mal (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*}

In diesem Moment,

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

5. (Basic / Effective) Anzahl der Reproduktionen

(Basic / Effective) Reproduktionsnummer Die Reproduktionsnummer ist wie folgt definiert [^ 3].

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

6. Datenbeispiel

Setzen Sie den Parameter $ (\ rho, \ sigma) = (0.2, 0.075) $ und den Anfangswert und das Diagramm.

# 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}}

(Basic / Effective) Anzahl der Reproduktionen:

# 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

Grafikanzeige:

# 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. Nächstes Mal

Einführung des Modells SIR-F, einer modifizierten Version des Basismodells SIR für COVID-19.

Recommended Posts

[CovsirPhy] COVID-19 Python-Paket für die Datenanalyse: SIR-Modell
[CovsirPhy] COVID-19 Python-Paket für die Datenanalyse: Laden von Daten
[CovsirPhy] COVID-19 Python-Paket für die Datenanalyse: S-R-Trendanalyse
[CovsirPhy] COVID-19 Python-Paket für die Datenanalyse: Parameterschätzung
[CovsirPhy] COVID-19 Python-Paket für die Datenanalyse: Szenarioanalyse (Parametervergleich)
Python für die Datenanalyse Kapitel 4
Python für die Datenanalyse Kapitel 2
Python für die Datenanalyse Kapitel 3
Vorverarbeitungsvorlage für die Datenanalyse (Python)
Python-Visualisierungstool für die Datenanalyse
Datenanalyse Python
Datenanalyse mit Python 2
Datenanalyse Übersicht Python
Python-Datenanalysevorlage
Datenanalyse mit Python
Lassen Sie uns Covid-19 (Corona) -Daten mit Python analysieren [Für Anfänger]
Datenanalyse zur Verbesserung von POG 1 ~ Web Scraping mit Python ~
[Für Anfänger] So studieren Sie den Python3-Datenanalysetest
COVID-19-Simulation mit Python (SIR-Modell) ~~ mit Präfektur-Wärmekarte ~~
Mein Python-Datenanalyse-Container
[Python] Hinweise zur Datenanalyse
Lernnotizen zur Python-Datenanalyse
Datenanalyse mit Python-Pandas
Tipps und Vorsichtsmaßnahmen bei der Datenanalyse
[In kürzester Zeit verstehen] Python-Grundlagen für die Datenanalyse
Welches sollte ich für die Datenanalyse studieren, R oder Python?
<Python> Erstellen Sie einen Server für die Datenanalyse mit Jupyter Notebook
Einführung in die statistische Modellierung für die Datenanalyse GLM-Modellauswahl
Python: Zeitreihenanalyse: Vorverarbeitung von Zeitreihendaten
Python-Kurs für datenwissenschaftlich-nützliche Techniken
Praxis der Datenanalyse durch Python und Pandas (Tokyo COVID-19 Data Edition)
Datenanalyse zur Verbesserung von POG 3 ~ Regressionsanalyse ~
Datenformatierung für Python / Farbdiagramme
Datenanalyse beginnend mit Python (Datenvisualisierung 1)
Datenanalyse beginnend mit Python (Datenvisualisierung 2)
Erstellen Sie ein USB-Boot-Ubuntu mit einer Python-Umgebung für die Datenanalyse
Python-E-Book-Zusammenfassung nützlich für die frei lesbare Datenanalyse
Detaillierte Python-Techniken für die Datenformung (1)
[Python] Erste Datenanalyse / maschinelles Lernen (Kaggle)
Datenanalyse beginnend mit Python (Datenvorverarbeitung - maschinelles Lernen)
Verwendung von "deque" für Python-Daten
Detaillierte Python-Techniken für die Datenformung (2)
Ich habe ein Python-Datenanalysetraining aus der Ferne durchgeführt
Vorbereitung auf die von Python 3 Engineer zertifizierte Datenanalyseprüfung
JupyterLab Grundeinstellung 2 für die Datenanalyse (pip)
JupyterLab Basic Setup für die Datenanalyse (pip)
Datenanalyse in Python Zusammenfassung der Quellen, die Anfänger zuerst betrachten sollten
Python: Zeitreihenanalyse: Erstellen eines SARIMA-Modells
[Einführung in das SEIR-Modell] Versuchen Sie, COVID-19-Daten anzupassen ♬
Datenanalyse zur Verbesserung von POG 2 ~ Analyse mit Jupiter-Notebook ~
Python-Vorlage, die eine Protokollanalyse mit explosiver Geschwindigkeit durchführt
Bereiten Sie eine Programmiersprachenumgebung für die Datenanalyse vor
Python3 Engineer Zertifizierungsdatenanalyse Test selbst erstellte Problemerfassung
Python: Zeitreihenanalyse: Konstanz, ARMA / ARIMA-Modell
Python 3 Engineer Zertifizierungsdatenanalyse Prüfung Pre-Exam Learning
Eine Einführung in die statistische Modellierung für die Datenanalyse
Verwendung von Datenanalysetools für Anfänger