[PYTHON] Lassen Sie uns eine Rangfolge der Anzahl der wirksamen Reproduktionen des neuen Koronavirus nach Präfektur erstellen

Einführung

Im Zusammenhang mit der neuen Coronavirus-Infektion (COVID-19), 19. März 2020, Situationsanalyse und Empfehlungen durch Expertentreffen .pdf) wurde ausgestellt. Darunter ist das Analyseergebnis zur effektiven Reproduktionszahl (der Durchschnittswert der Anzahl der Sekundärinfektionen, die von einer infizierten Person zu einem bestimmten Zeitpunkt in der Bevölkerung, in der die Epidemie der Infektionskrankheit auftritt, hervorgerufen wurden) angegeben. In Hokkaido liegt der Wert seit Mitte Februar unter 1, und es wurde die Ansicht vertreten, dass er in Richtung Konvergenz geht. In Artikel, den ich neulich geschrieben habe habe ich das mit einem vereinfachten Modell berechnete Ergebnis gezeigt, aber das Analyseergebnis zu diesem Zeitpunkt ist auch ungefähr 1, da es kleiner als 1 ist. Wir haben dies getan, und ich denke, wir konnten die Antworten zusammenbringen. Die Analyse von Professor Nishiura an der Hokkaido-Universität scheint jedoch eine genauere Analyse unter Verwendung der wahrscheinlichsten Schätzung zu sein. Wahrscheinlich, wie in diesem Artikel gezeigt, effektive Reproduktionsnummer , Rt): Es scheint "die Anzahl der Sekundärinfektionen durch eine infizierte Person (zu einem bestimmten Zeitpunkt t, unter bestimmten Maßnahmen)" zu bedeuten. Selbst wenn die Grundanzahl der Reproduktionen R0 ist, scheint es schwierig zu sein, sie getrennt von Gesellschaft und Politik zu bewerten. Daher wurde der Titel dieses Artikels absichtlich als Anzahl der effektiven Reproduktionen festgelegt. Übrigens möchte ich in diesem Artikel eine Rangfolge des Durchschnittswerts in einem bestimmten Zeitraum der Anzahl der Reproduktionen nach Präfektur angeben. Beim Expertentreffen neulich ** 1. Bereiche, in denen sich die Infektionssituation ausbreitet 2. 2. Bereiche, in denen die Infektionssituation zu konvergieren beginnt, und Bereiche, in denen sie bis zu einem gewissen Grad besiedelt wurde. Es wurde empfohlen, das Gebiet in drei Gebiete zu unterteilen, in denen der Infektionsstatus nicht bestätigt wurde, und ** in ausgewogener Weise, aber es wurde nicht angegeben, welches Gebiet 1 entspricht. Daher ist die Hauptmotivation für diesen Artikel, ** die Anzahl der Reproduktionen nach Präfektur spezifisch zu berechnen und sie zu ordnen **.

Annahme

Die Grundformel entspricht dem Inhalt von Vorheriger Artikel. Ich habe die Parameter auch nicht geändert. Wie im vorherigen Artikel wurde auch die CSV in Karte der Anzahl der von der Präfektur infizierten neuen Koronaviren (bereitgestellt von Jag Japan Co., Ltd.) veröffentlicht. Ich habe die Daten verwendet. Aufgrund der zeitlichen Verzögerung bei der Suche nach einem positiven Test nach der Latenzzeit und der Infektionsperiode wurden die Ergebnisse vor den letzten zwei Wochen nicht erhalten. Damit Sie Japanisch mit matplotlib verwenden können, [diese Seite](https://datumstudio.jp/blog/matplotlib%E3%81%AE%E6%97%A5%E6%9C%AC%E8%AA % 9E% E6% 96% 87% E5% AD% 97% E5% 8C% 96% E3% 81% 91% E3% 82% 92% E8% A7% A3% E6% B6% 88% E3% 81% 99 Ich habe die IPAex Gothic-Schriftart unter Bezugnahme auf% E3% 82% 8Bwindows% E7% B7% A8) installiert.

Versuchen Sie mit Python zu rechnen

Dieser Code ist auf GitHub verfügbar. Es wird im Jupyter Notebook-Format gespeichert. (Dateiname: 03_R0_estimation-JPN-02a.ipynb)

Code

Ich werde nicht den gesamten Code im Artikel behandeln, da er lang sein wird, aber ich werde die wichtigsten Punkte bei der Erstellung des Rankings erläutern. Es ist eine Magie, japanische Schriftarten in der Abbildung zu aktivieren (Schriftarten müssen vorinstalliert sein).

font = {'family' : 'IPAexGothic'}
plt.rc('font', **font)

Es ist eine Funktion, um den Präfekturnamen zu extrahieren. Ich verwende die Funktion duplicated (), um doppelte Werte zu entfernen.

def getJapanPrefList():
    #Download von der unten stehenden URL
    # https://jag-japan.com/covid19map-readme/
    fcsv = u'COVID-19.csv'
    df = pd.read_csv(fcsv, header=0, encoding='utf8', parse_dates=[u'Bestätigtes Datum JJJJMMTT'])
    #Festes Datum,Extrahieren Sie nur die Präfektur Beratung
    df1 = df.loc[:,[u'Beratungspräfektur']]
    df1.columns = ['pref']
    df1 = df1[~df1.duplicated()]
    preflist = [e[0] for e in df1.values.tolist()]
    return preflist

preflist = getJapanPrefList()

Dies ist der Teil, der Diagramme und Datenrahmen für die Präfekturliste erstellt.

def R0inJapanPref2(pref):
    keys = {'lp':5, 'ip':8 }
    df1 = makeCalcFrame(60) # 60 days
    df2 = readCsvOfJapanPref(pref)
    df = mergeCalcFrame(df1, df2)
    df = calcR0(df, keys)
    showResult(df, u'COVID-19 R0 ({})'.format(pref))
    return df

dflist = [ [R0inJapanPref2(pref), pref] for pref in preflist]

Es ist eine Funktion, den Durchschnitt der Grundreproduktionsnummer R0 in einem bestimmten Zeitraum zu berechnen. Wir haben es mit dem Fall zu tun, in dem es leer wird.

def calcR0Average(df, st, ed):
    df1 = df[(st <= df.date) & (df.date <= ed) ]
    df2 = df1[np.isnan(df1.R0) == False]
    df3 = df2['R0']
    ave = np.average(df3) if len(df3) > 0 else 0
    return ave

Eine Funktion, die nach Rang sortiert.

def calcR0AveRank(dflist, st, ed):
    R0AveRank = [ [pref, calcR0Average(df, st, ed)] for df, pref in dflist]
    R0AveRank.sort(key = lambda x: x[1], reverse=True)
    df = pd.DataFrame(R0AveRank)
    df.columns = ['pref','R0ave']
    return df

Eine Funktion, die das Ranking als Balkendiagramm anzeigt. Ich benutze die Funktion set_position, um die X-Achse nach oben zu bringen.

def showRank(dflist, maxn, title):
    ax = dflist.iloc[0:maxn,:].plot.barh(y='R0ave',x='pref',figsize=(8,10))
    ax.invert_yaxis()
    ax.grid(True, axis='x')
    ax.spines['bottom'].set_position(('axes',1.05))
    plt.title(title, y=1.05)
    plt.show()
    return ax

Schließlich der Teil, der das Ranking berechnet.

# 2020/2/7 bis 2020/3/7
st = pd.Timestamp(2020,2,7)
ed = pd.Timestamp(2020,3,7)
title = "R0ave_ranking_2020207_20200307"
dfR0_1 = calcR0AveRank(dflist, st, ed)
ax = showRank(dfR0_1, 13, title)
fig = ax.get_figure()
fig.savefig("{}.jpg ".format(title))
# 2020/2/23 bis 2020/3/7
st = pd.Timestamp(2020,2,23)
ed = pd.Timestamp(2020,3,7)
title = "R0ave_ranking_2020223_20200307"
dfR0_1 = calcR0AveRank(dflist, st, ed)
ax = showRank(dfR0_1, 13, title)
fig = ax.get_figure()
fig.savefig("{}.jpg ".format(title))
# 2020/3/1 bis 2020/3/7
st = pd.Timestamp(2020,3,1)
ed = pd.Timestamp(2020,3,7)
title = "R0ave_ranking_2020301_20200307"
dfR0_2 = calcR0AveRank(dflist, st, ed)
ax = showRank(dfR0_2, 13, title)
fig = ax.get_figure()
fig.savefig("{}.jpg ".format(title))

Ranking Ergebnis

Schauen wir uns nun die Berechnungsergebnisse an. Wenn $ R_0> 1 $ ist, breitet sich die Infektion aus, und wenn $ R_0 <1 $, konvergiert die Infektion. Wir werden uns spätestens einen Monat, zwei Wochen und eine Woche ansehen.

Ranking von 2020/2/7 bis 2020/3/7 (für den letzten Monat)

R0ave_ranking_2020207_20200307.jpg

Ranking von 2020/2/23 bis 2020/3/7 (für die letzten 2 Wochen)

R0ave_ranking_2020223_20200307.jpg

Ranking von 2020/3/1 bis 2020/3/7 (für die letzte Woche)

R0ave_ranking_2020301_20200307.jpg

Erwägung

Außerdem ...

Referenzlink

Ich habe auf die folgende Seite verwiesen.

  1. "Statusanalyse / Empfehlungen für Gegenmaßnahmen gegen neue Corona-Virus-Infektionskrankheiten" (19. März 2020)
  2. Berechnen Sie den Übergang der Grundreproduktionsnummer des neuen Koronavirus nach Präfektur
  3. Vorhersage von Infektionskrankheiten: quantitative Probleme in mathematischen Modellen von Infektionskrankheiten
  4. Karte der Anzahl der von der Präfektur infizierten neuen Koronaviren (bereitgestellt von Jag Japan Co., Ltd.)
  5. [Verstümmelte japanische Zeichen in matplotlib (Windows) beseitigen](https://datumstudio.jp/blog/matplotlib%E3%81%AE%E6%97%A5%E6%9C%AC%E8% AA% 9E% E6% 96% 87% E5% AD% 97% E5% 8C% 96% E3% 81% 91% E3% 82% 92% E8% A7% A3% E6% B6% 88% E3% 81% 99% E3% 82% 8Fenster% E7% B7% A8)
  6. Seite der Präfektur Saitama

Recommended Posts

Lassen Sie uns eine Rangfolge der Anzahl der wirksamen Reproduktionen des neuen Koronavirus nach Präfektur erstellen
Berechnen wir den Übergang der Grundreproduktionszahl des neuen Koronavirus nach Präfektur
Lassen Sie uns die Konvergenzzeit anhand des globalen Trends der effektiven Reproduktionszahl des neuen Koronavirus untersuchen
Lassen Sie uns die medizinische Kollapshypothese des neuen Koronavirus testen
Stellen wir uns die Anzahl der mit Matplotlib mit dem Coronavirus infizierten Personen vor
Ich habe versucht, die Anzahl der Todesfälle pro Kopf von COVID-19 (neues Koronavirus) nach Ländern zu tabellieren
Simulieren wir den Effekt der Einführung einer Kontaktverfolgungs-App als Gegenmaßnahme gegen den neuen Koronavirus
Zeichnen Sie die Ausbreitung des neuen Koronavirus
Erstellen Sie einen Bot, der die Anzahl der Personen, die für das neue Corona-Virus in Tokio positiv sind, an Slack sendet
Hat die Anzahl der Ladenschließungen aufgrund des Einflusses des neuen Koronavirus zugenommen?
Schätzen Sie die maximale Infektiosität des neuen Coronavirus ab
Erstellen Sie einen BOT, der die Anzahl der infizierten Personen in der neuen Corona anzeigt
[Python] Zeichnen Sie Daten nach Präfektur auf einer Karte (Anzahl der Autos im ganzen Land)
Finden Sie die Anzahl der Tage in einem Monat
Minimieren Sie die Anzahl der Polierungen, indem Sie die Kombination optimieren
GUI-Simulation des neuen Koronavirus (SEIR-Modell)
Überprüfen Sie die Wirkung des Urlaubs als Gegenmaßnahme gegen das neue Koronavirus mit dem SEIR-Modell
Ermitteln Sie die maximale Anzahl von Zeichen in mehrzeiligem Text, die in einem Datenrahmen gespeichert sind
[Python] Ein Programm, das die Anzahl der Täler zählt
Aufgaben zu Beginn eines neuen Python-Projekts
Lassen Sie uns die von der Präfektur Shimane veröffentlichten Niederschlagsdaten visualisieren
Scraping von IDWR-Bulletin-Daten nach Anzahl der Berichte pro Influenza-Fixpunkt und nach Präfektur
Bedeutung der Eingrenzung des Testziels des PCR-Tests auf neues Koronavirus nach dem Bayes-Theorem
Werfen wir einen Blick auf die Infektionstendenz des neuen Coronavirus COVID-19 in jedem Land und den Status der medizinischen Reaktion (zusätzliche Informationen).
Wenn die Menschen in Tokio ernsthaft an dem neuen Koronavirus erkranken, können sie in ein Krankenhaus in der Präfektur Kagoshima gebracht werden.