COVID-19 番外編2

COVID-19 の番外編。

都道府県別新型コロナウイルス感染者数マップというすばらしいサイトがある。作っておられるのはジャッグジャパン株式会社さん(→社長の大濱崎さんの都道府県別新型コロナウイルス感染症患者数マップを作ってみて感じたこと)。データもCSVファイルで提供されている。これを使っていろいろプロットしてみる。

このページは2020-03-12に作ったが,グラフはその後も更新している。

まず,発症日と確定日のヒストグラム(エピカーブ)を半透明の棒グラフで:

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import pandas as pd
import numpy as np
import datetime

df = pd.read_csv("https://dl.dropboxusercontent.com/s/6mztoeb6xf78g5w/COVID-19.csv",
                 parse_dates=['確定日', '発症日'], low_memory=False)

# 再陽性を削除
df = df[['再陽性' not in x for x in df['備考'].astype(str)]].copy()

b = np.arange(min(min(df['確定日']), min(df['発症日'])),
              max(max(df['確定日']), max(df['発症日'])) + datetime.timedelta(days=2),
              datetime.timedelta(days=1))

fig, ax = plt.subplots()
locator = mdates.AutoDateLocator()
formatter = mdates.ConciseDateFormatter(locator)
ax.xaxis.set_major_locator(locator)
ax.xaxis.set_major_formatter(formatter)

ax.hist(df['発症日'].values, bins=b, alpha=0.5) # edgecolor="black"
ax.hist(df['確定日'].values, bins=b, alpha=0.5)
ax.legend(['発症日 (onset)', '確定日 (confirmed)'])
ax.set_xlim(datetime.datetime(2020,2,1), b[-1])
fig.savefig('200312a.svg', bbox_inches="tight")
COVID-19 発症日,確定日

発症日と確定日はどれくらい隔たっているのだろうか:

dt = (df['確定日'] - df['発症日']).dt.days

ax.hist(dt, bins=np.arange(min(dt), max(dt)+2), color="lightgray", edgecolor="black")
ax.legend(['確定日-発症日 (confirmed - onset)'])
ax.text(0.98, 0.87, 'median: ' + str(np.median(dt.dropna())),
        horizontalalignment='right', transform=ax.transAxes)
COVID-19 発症日と確定日の差

発症日と確定日の隔たりを,確定日ごとにプロットしたもの(日毎の中央値をオレンジでプロット):

h = [np.nanmedian(dt[df['確定日'] == i]) for i in b]

ax.plot(df['確定日'], dt, 'ko', markersize=5, alpha=0.1)
ax.plot(b, h, color='C1')
ax.set_xlabel('確定日 (confirmed)')
ax.set_ylabel('確定日-発症日 (confirmed - onset)')
COVID-19 発症日と確定日の差 vs 確定日

確定日の曜日の分布:

w2 = [t.dayofweek for t in df['確定日']]
h1, h2 = np.histogram(w2, range(0,8))
ax.bar(['月','火','水','木','金','土','日'], h1, color="lightgray", edgecolor="black")
ax.set_xlabel('確定日')
COVID-19 確定日の曜日の分布

発症日の曜日の分布:

COVID-19 発症日の曜日の分布

最初に挙げたエピカーブを東京都だけで描いてみる:

df1 = df[df['受診都道府県'] == '東京都']
COVID-19 発症日,確定日(東京都)

このように,東京のデータは途中で発症日が報告されなくなってしまっている。一方,東京以外では次のようになる:

COVID-19 発症日,確定日(東京都以外)

第1波のピークあたりを拡大してみる:

ax.set_xlim(datetime.datetime(2020,3,20), datetime.datetime(2020,5,1))
COVID-19 発症日,確定日(東京都以外)

発症ピークは4月1・3日であることがわかる。感染ピークはそれより数日前であろう(潜伏期の中央値は5日程度だが幅が広い)。厚労省専門家会議の「新型コロナウイルス感染症対策の状況分析・提言(5月29日)」図2(全国)によれば3月28日(土)または29日(日),図3(東京)によれば3月27日(金)または29日(日)が感染のピークであった。これらは3月25日に小池都知事が「今週末の外出を控えて」と呼びかけた週末に一致する。都知事の外出自粛要請は有効でなかったのか(翌朝の志村けん訃報のほうが効果があったのか)。関係しそうな時系列:

6月・7月にまた感染者が増えてきたが,平均年齢が低下している。次のグラフは,例えば20代として報告されている感染確認者の年齢は25歳として,毎日の平均年齢を求めたものである(人数が10人以上の日だけに限った):

COVID-19 平均年齢

Last modified: