Es gibt einige Dinge, die ich aus der vorherigen Simulation der neuen Corona gelernt habe, aber wenn Sie genau hinschauen, denke ich, dass der Infektionspeak anhand des Diagramms des Infektionsstatus von Corona vorhersehbar sein kann. Es war die folgende Simulation. Das heißt, das rote Balkendiagramm zeigt die Anzahl der Infektionen und das grüne Balkendiagramm zeigt die Anzahl der Heilungen, aber es ist schwierig vorherzusagen, um wie viel die Anzahl der Infektionen zunehmen wird, aber die Anzahl der Heilungen ist auf die Anzahl der Infektionen begrenzt, also zumindest die Anzahl der Infektionen Die Anzahl wird nicht überschritten. Darüber hinaus beträgt sie, ausgedrückt als Heilungsrate, am Ende fast 100%. Darüber hinaus erreicht die Heilungsrate immer einen Spitzenwert später als die Spitzeninfektion. Auf den ersten Blick scheint es einfacher zu sein, das Ende der Infektionen zu bestimmen, aber es ist nicht klar, ob dieser Peak notwendigerweise die Obergrenze ist. Andererseits erreicht die Anzahl der Heilungen den Höhepunkt der Infektion um 50%, und es scheint, dass sie sich diesem Wert allmählich nähert. Mit anderen Worten, wenn Sie diesem Wert folgen, scheint die Endzeit ungefähr sichtbar zu sein. Betrachten Sie die obige Grafik mit der Annahme, dass die Infektion von Beginn der Heilung an gesättigt ist. Lassen Sie uns diesmal sehen, ob sich die tatsächlichen Daten auf die gleiche Weise verhalten. 【Referenz】 ・ Visualisieren Sie die Anzahl der mit Matplotlib mit dem Coronavirus infizierten Personen
・ Codeerklärung ・ Visualisieren Sie die Anzahl der Infizierten in jedem Land
Der Code ist unten. ・ Collective_particles / draw_covid19.py
Diesmal handelt es sich um eine Visualisierungsmethode für mehrere Daten. Erhalten Sie zur Visualisierung von Infektionsdaten mindestens 3 Daten von den folgenden Stellen. Der Einfachheit halber habe ich die Zip-Datei von der folgenden Referenzseite heruntergeladen und erweitert. (Der Link unten ist die Linkseite der Datei. Wir empfehlen den Batch-Download von der unten stehenden Referenz.) time_series_19-covid-Confirmed.csv time_series_19-covid-Deaths.csv time_series_19-covid-Recovered.csv 【Referenz】 ・ CSSEGISandData / COVID-19 Wir werden diese Daten entsprechend verarbeiten und ein Diagramm ähnlich dem oben genannten zeichnen. Der Prozess bis zur grafischen Zeichnung wird unten erläutert. Verwenden Sie zunächst die folgende Bibliothek. Auch hier verwendet die Umgebung diesmal Jetson-nano, aber Pandas ist neu installiert. Als Referenz habe ich einen Fehler erhalten, wenn es einfach war, also habe ich ihn schließlich mit dem folgenden Befehl eingegeben.
sudo apt-get install python-pandas
sudo apt-get install python3-pandas
Der folgende Code funktionierte unter Python, aber Importpandas funktionierten nicht unter Python3.
$ python3
Python 3.6.9 (default, Nov 7 2019, 10:44:02)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd
>>>
【Referenz】 ・ So installieren Sie Pandas in 3 Minuten ohne Verwendung von pip
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
Lesen Sie als Nächstes die drei CSV-Dateien wie folgt.
#Lesen Sie CSV-Daten mit Pandas.
data = pd.read_csv('COVID-19/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Confirmed.csv')
data_r = pd.read_csv('COVID-19/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Recovered.csv')
data_d = pd.read_csv('COVID-19/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Deaths.csv')
Definieren Sie die Variable. Die zu lesenden Daten haben die folgende Struktur, sodass die ersten vier ausgeschlossen sind.
Province/State | Country/Region | Lat | Long | 1/22/20 | 1/23/20 | 1/24/20 | 1/25/20 |
---|---|---|---|---|---|---|---|
Thailand | 15 | 101 | 2 | 3 | 5 | 7 | |
Japan | 36 | 138 | 2 | 1 | 2 | 2 | |
New South Wales | Australia | -33.8688 | 151.2093 | 0 | 0 | 0 | 0 |
Das Datum wurde auf die Anzahl der Tage geändert. .. .. Aus dem obigen Referenzartikel
confirmed = [0] * (len(data.columns) - 4)
confirmed_r = [0] * (len(data_r.columns) - 4)
confirmed_d = [0] * (len(data_d.columns) - 4)
recovered_rate = [0] * (len(data_r.columns) - 4)
deaths_rate = [0] * (len(data_d.columns) - 4)
days_from_22_Jan_20 = np.arange(0, len(data.columns) - 4, 1)
Schauen wir uns diesmal die Daten von Wuhan an.
city = "Hubei"
Die ersten Variablen unten werden bereitgestellt, um die Gesamtzahl der Fälle, die Gesamtzahl der Heilungen und die Gesamtzahl der Todesfälle für die Titelanzeige zu speichern.
Wie Sie aus den obigen Daten sehen können, ist es mit Staaten und Ländern ausgerichtet. Um die Daten von Wuhan einzubringen, verwenden Sie if (data.iloc [i] [0] == city):
. Das Land nutzt das auskommentiert.
Speichern Sie die täglichen Zahlen in bestätigt, bestätigt_r und bestätigt_d.
Da die Anzahl der Falldaten ein kumulativer Wert ist, wird die Anzahl der Heilungsfälle an diesem Tag abgezogen und in die Anzahl der Infektionen an diesem Tag geändert.
Die Berechnung + = wird verwendet, um den Gesamtwert von Regionen im selben Land, aber in verschiedenen Regionen zu erhalten.
#Prozessdaten
t_cases = 0
t_recover = 0
t_deaths = 0
for i in range(0, len(data), 1):
#if (data.iloc[i][1] == city): #for country/region
if (data.iloc[i][0] == city): #for province:/state
print(str(data.iloc[i][0]) + " of " + data.iloc[i][1])
for day in range(4, len(data.columns), 1):
confirmed[day - 4] += data.iloc[i][day] - data_r.iloc[i][day]
confirmed_r[day - 4] += data_r.iloc[i][day]
confirmed_d[day - 4] += data_d.iloc[i][day]
t_recover += data_r.iloc[i][day]
t_deaths += data_d.iloc[i][day]
Dieses Mal möchte ich das Ende des oben Gesagten sehen, also berechne ich die Heilungsrate. Wir berechnen auch die betroffene Sterblichkeitsrate.
tl_confirmed = 0
for i in range(0, len(confirmed), 1):
tl_confirmed = confirmed[i] + confirmed_r[i] + confirmed_d[i]
if tl_confirmed > 0:
recovered_rate[i]=float(confirmed_r[i]*100)/float(tl_confirmed)
deaths_rate[i]=float(confirmed_d[i]*100)/float(tl_confirmed)
else:
continue
t_cases = tl_confirmed
Es ist unten grafisch dargestellt. Dieses Mal können mehrere Diagramme zusammen angezeigt werden.
#Matplotlib-Zeichnung
fig, (ax1,ax2) = plt.subplots(2,1,figsize=(1.6180 * 4, 4*2))
ax3 = ax1.twinx()
ax4 = ax2.twinx()
lns1=ax1.plot(days_from_22_Jan_20, confirmed, "o-", color="red",label = "cases")
lns2=ax1.plot(days_from_22_Jan_20, confirmed_r, "*-", color="green",label = "recovered")
lns3=ax3.plot(days_from_22_Jan_20, confirmed_d, "D-", color="black", label = "deaths")
lns4=ax2.plot(days_from_22_Jan_20, recovered_rate, "*-", color="green",label = "recovered")
lns5=ax4.plot(days_from_22_Jan_20, deaths_rate, "D-", color="black", label = "deaths")
lns_ax1 = lns1+lns2+lns3
labs_ax1 = [l.get_label() for l in lns_ax1]
ax1.legend(lns_ax1, labs_ax1, loc=0)
lns_ax2 = lns4+lns5
labs_ax2 = [l.get_label() for l in lns_ax2]
ax2.legend(lns_ax2, labs_ax2, loc=0)
ax1.set_title(city +" ; {} cases, {} recovered, {} deaths".format(t_cases,t_recover,t_deaths))
ax1.set_xlabel("days from 22, Jan, 2020")
ax1.set_ylabel("casas, recovered ")
ax2.set_ylabel("recovered_rate %")
ax2.set_ylim(0,100)
ax3.set_ylabel("deaths ")
ax4.set_ylabel("deaths_rate %")
ax4.set_ylim(0,10)
ax1.grid()
ax2.grid()
plt.pause(1)
plt.savefig('./fig/fig_{}_.png'.format(city))
plt.close()
Diese Daten sind recht gute Daten zum Vergleich mit der Simulation. Leider sieht der Teil, der die Zählmethode geändert hat, groß aus. Wenn dies anhand dieser Daten durch Simulation reproduziert werden kann, kann diesmal die Übertragung der Infektion in Wuhan simuliert werden. Und wenn Sie sich die Heilungsrate ansehen, können Sie sehen, dass 50% der Höhepunkt dieser Infektionsübertragung ist, und es kann vorausgesagt werden, dass sie in ungefähr der gleichen Anzahl von Tagen danach enden wird. Mit anderen Worten, es erreicht ungefähr 40 Tage nach Beginn der Infektion einen Höhepunkt, und jetzt, ungefähr 20 Tage danach, ist es wahrscheinlich, dass es in ungefähr 20 Tagen endet. Darüber hinaus steigt die Sterblichkeitsrate allmählich an und scheint bei etwa 4,5% zu liegen. Dies erhöht nicht die Anzahl der neu infizierten Menschen, aber ich denke, es ist unvermeidlich, da die Todesfälle bis zur letzten Nacht andauern werden.
Lassen Sie uns die Situation des Landes ausgeben, das Sie interessiert Unten habe ich verschiedene Kommentare geschrieben, bin mir aber nicht sicher, da es sich nur um einen Eindruck eines Amateur-Uwan handelt, der sich die Grafik ansieht.
Die Sterblichkeitsrate kann niedrig sein. Ich habe jedoch gehört, dass es beendet ist, und obwohl die Anzahl der Infektionen ihren Höhepunkt erreicht zu haben scheint, liegt die Heilungsrate immer noch unter 20%, und ich habe den Eindruck, dass es unvorhersehbar ist. Es dauert einfach ungefähr 30 Tage, um 50% zu erreichen, und es scheint, dass es erst ungefähr 50 Tage danach zu Ende geht.
Ich war besorgt über den Zusammenbruch der medizinischen Versorgung, war aber erleichtert, dass die Daten solide waren. Mit anderen Worten, ich habe das Gefühl, dass das Land die Kontrolle hat. Das Merkmal ist jedoch, dass die Sterblichkeitsrate stetig steigt und in letzter Zeit etwa 8% beträgt. Darüber hinaus liegt die Heilungsrate bei etwa 10% und die Anzahl der Infektionen bei etwa 40.000, sie befindet sich jedoch mitten in einem Anstieg und es besteht keine Aussicht auf ein Ende.
Es ist ein besorgniserregendes Land zusammen mit Italien. Immerhin war die Sterblichkeitsrate ein abnormaler Wert, aber als ich hierher kam, stieg sie wieder stark an und überschritt 6%. Da die Heilungsrate jedoch etwa 30% erreicht hat, kann die maximale Anzahl von Infektionen bald eintreten. Der Anstieg der Heilungsrate ist langsam, aber wenn die maximale Anzahl von Heilungen daraus vorhergesagt werden kann, ist es möglich, eine Eindämmung zu erreichen. Da die Daten solide waren, scheint es für einen medizinischen Kollaps in Ordnung zu sein.
Zusammen gezeigt. Beide Länder sind ebenfalls besorgniserregend. Dies liegt daran, dass die Anzahl der Fälle in beiden Fällen zugenommen hat, die Heilung jedoch nahezu Null ist. Eine plötzliche Infektion wird vorhergesagt, und ich kann mir vorstellen, dass dies vorerst nicht enden wird. Die Sterblichkeitsrate ist in Frankreich mit 2% niedrig, in Deutschland mit weniger als 30 Personen jedoch fast 0. Es ist weniger als 20 Tage her, seit ich infiziert wurde, also kann ich mir vorstellen, dass es viele Menschen gibt, die gegen Krankheiten kämpfen, aber ich würde gerne den Übergang sehen. Die Vereinigten Staaten sind auch ein Land, in dem die Zahl der Infektionen rapide zunimmt. In den Vereinigten Staaten wie in den oben genannten Ländern beträgt die Anzahl der Heilungen 0, und die Sterblichkeitsrate wird mit 2% oder weniger niedrig gehalten. Dies ist jedoch auch etwa 20 Tage nach dem Anstieg der Anzahl der Infektionen, daher würde ich mir den Übergang wünschen.
Spanien ist auch eines der besorgten Länder. Es ist wie folgt. Die Daten fühlen sich solide und kontrolliert an. Aber auch hier steigt die Sterblichkeitsrate und hat kürzlich 4% überschritten. Betrachtet man die Heilungsrate, so beträgt sie weniger als 10% und die Anzahl der Infektionen liegt bei etwa 15.000, aber wir können sehen, dass sie sich noch im Anfangsstadium befindet. Ich möchte zukünftige Trends im Auge behalten.
Ich denke, Japan ist das Land, in dem sich die Infektion am langsamsten ausbreitet. In gewisser Weise habe ich den Eindruck, dass es sowohl polar als auch chinesisch ist. Die Sterblichkeitsrate wurde ebenfalls niedrig gehalten, scheint sich aber allmählich 4% zu nähern. Außerdem ist die Heilungsrate jetzt auf ungefähr 18% gestiegen, aber da sie nur sehr langsam zunimmt, denke ich, dass noch weder der Infektionspeak noch der Heilungsratenpeak zu sehen sind. Ich denke, dass es sichtbar sein wird, wenn es etwa 30 Tage lang weiter zunimmt. Der Anstieg der Anzahl der Infektionen ist jedoch eine nach unten konvexe Kurve, die zu einem raschen Anstieg führen kann. Ich halte dies daher für unvorhersehbar.
・ Ich habe versucht, COVID-19-Daten zu zeichnen ・ Es können mehrere Diagramme verknüpft und ausgegeben werden ・ Bewertet, was aus der Simulation mit tatsächlichen Daten ersichtlich ist
・ Erweitern Sie die Simulation, damit Sie das Ende vorhersagen können ・ Ich möchte eine App erstellen, die die Situation in jedem Land kategorisiert.
Recommended Posts