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 **.
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.
Dieser Code ist auf GitHub verfügbar. Es wird im Jupyter Notebook-Format gespeichert. (Dateiname: 03_R0_estimation-JPN-02a.ipynb)
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))
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.
Ich habe auf die folgende Seite verwiesen.
Recommended Posts