Wir haben die Ausbreitung von COVID-19 mithilfe des SIR-Modells in Python simuliert. Wir haben jede der 47 Präfekturen für das Modell erstellt und mit einer Heatmap visualisiert.
Github-Seite https://github.com/chihina/analysis_covid_19_python
Visualisiertes Video (Einige Wasserzeichen sind für die Bearbeitung mit kostenloser Software enthalten. Es tut mir leid !!) https://www.youtube.com/watch?v=7XvPKcasL1U
Interpreter: Python 3.71 Spezialbibliothek: Folium == 0.11.0 Andere wie Matplotlib und Numpy.
Die normale Differentialgleichung des SIR-Modells lautet wie folgt. (Einfach ausgedrückt steht β für die Infektionsrate und γ für die Wiederherstellungsrate.)
\frac{dS}{dt}(t) = -\beta S(t)I(t)\\
\frac{dI}{dt}(t) = \beta S(t)I(t) - \gamma I(t)\\
\frac{dR}{dt}(t) = \gamma I(t)\\
S (anfällig) ... Empfindlichkeitsinhaber (Personen, die möglicherweise infiziert sind)
Ich (infiziert) ... infiziert
R (wiederhergestellt) ... Immunitätsinhaber (oder Quarantäne)
\frac{dS}{dt}(t) = -\beta S(t)I(t)\\
Die linke Seite stellt die Änderungsrate der Suszeptibilitätsträger pro Zeiteinheit dar. Dies wird ausgedrückt, indem Suszeptibilitätsträger und Immunitätsträger mit der Infektionsrate multipliziert werden.
Mit anderen Worten, S wird um die Anzahl der infizierten Personen pro Zeiteinheit reduziert.
\frac{dI}{dt}(t) = \beta S(t)I(t) - \gamma I(t)\\
Die linke Seite zeigt die Änderungsrate infizierter Personen pro Zeiteinheit. Der erste Begriff auf der rechten Seite wurde früher eingeführt. Der zweite Begriff auf der rechten Seite gibt die Person an, die sich pro Zeiteinheit erholt.
Mit anderen Worten, es ist die Anzahl der Menschen, die sich von denen erholen, die sich pro Zeiteinheit infiziert haben.
\frac{dR}{dt}(t) = \gamma I(t)\\
Die linke Seite zeigt die Änderungsrate des Immunträgers pro Zeiteinheit. Die rechte Seite ist dieselbe wie die vorherige und zeigt die Person, die sich pro Zeiteinheit erholt.
Mit anderen Worten, R erhöht sich um die Anzahl der Personen, die sich pro Zeiteinheit erholen.
In Anbetracht des bisher für 47 Präfekturen beschriebenen SIR-Modells ist es bedeutungslos, da jede unabhängig wird. Daher wird der Einflussbegriff aufgrund des Infektionsstatus anderer Präfekturen unter Verwendung der Populationsverhältnisdaten hinzugefügt. Hat.
\frac{dS}{dt}(t) = -\beta S(t)I(t) - I_{pref} × PR_{pref} × 0.1\\
\frac{dI}{dt}(t) = \beta S(t)I(t) - \gamma I(t) + I_{pref} × PR_{pref} × 0.1 \\
\frac{dR}{dt}(t) = \gamma I(t)\\
I_{pref} × PR_{pref} × 0.1
Der erste Brief drückt die Situation anderer infizierter Personen als der Präfektur aus, an die Sie zu diesem Zeitpunkt denken.
Der zweite Buchstabe gibt das Bevölkerungsverhältnis der Präfektur an, an die Sie zu diesem Zeitpunkt denken.
Wenn gemäß diesem Abschnitt die Anzahl der Infizierten in anderen Präfekturen zunimmt, steigt daher die Anzahl der Infizierten in ihren eigenen Präfekturen. Unter Verwendung der Informationen zum Bevölkerungsverhältnis ist die Bevölkerung in Tokio, Osaka, Aichi usw. groß. Ich versuche, den Einfluss der Präfektur zu stärken.
Wir werden das verbesserte SIR-Modell mit Python lösen. Ursprünglich war es einfach mit scipy zu implementieren, aber wir haben es zum besseren Verständnis stetig implementiert. Weitere Informationen finden Sie im Code und stellen Sie eine Frage Bitte!!
Implementierungsmethode: Lungekutter-Methode 4. Ordnung
Es gibt viele Erklärungen zur Rungekutta-Methode. Suchen Sie daher nach "Rungekutta-Methode 4. Ordnung".
Zeichnen Sie eine Zeitreihen-Heatmap mit Python-Folium https://sammi-baba.hatenablog.com/entry/2018/12/25/074017
Nach dem Erstellen der infizierten Personeninformationen für jede Präfektur mit dem Pandas-Datenrahmen Ich habe gelesen und verwendet, was ich nach CSV exportiert habe. Bitte sehen Sie sich das aktuelle Video an, das auf YouTube hochgeladen wurde!
Visualisiertes Video (Einige Wasserzeichen sind für die Bearbeitung mit kostenloser Software enthalten. Es tut mir leid !!) https://www.youtube.com/watch?v=7XvPKcasL1U
Ich konnte die aktuelle Infektionssituation nicht perfekt erfassen, habe aber eine relativ einfache normale Differentialgleichung. Ich war sehr überrascht, die Ausbreitung der Infektion bis zu einem gewissen Grad reproduzieren zu können.
Wenn Sie Fragen zu detaillierteren Inhalten haben, zögern Sie bitte nicht, uns zu kontaktieren!
Ich habe auf die folgenden Artikel und statistischen Daten verwiesen. Vielen Dank.
[1] Zeichne eine Zeitreihen-Heatmap mit Python-Folium https://sammi-baba.hatenablog.com/entry/2018/12/25/074017
[2] Bevölkerungsschätzung Stand 1. Oktober 2017 Bevölkerungsschätzung Nationale Volkszählungsstelle (e-stat) https://www.e-stat.go.jp/dbview?sid=0003215844
[3] Daten der japanischen Github-Seite (abgerufen am 28. Juli 2020) https://www.e-stat.go.jp/dbview?sid=0003215844
Recommended Posts