LoginSignup
3
4

More than 3 years have passed since last update.

新型コロナウィルスCOVID-19の各国の感染傾向と医療の対応状況(情報追加)を見てみよう.

Last updated at Posted at 2020-03-25

更新(2021年3月4日)

 世界で一番ワクチン接種率の高いイスラエル(60%以上)の新規感染者数の傾向を見てみます。

20210304new-cases-israel.png

 どうも、2月中旬あたりから下げ止まっているようにみえます。それでは、新規死亡者数はどうなっているのか。

20210304new-deaths-israel.png

 こちらも同様に下げ止まりに思えます。ワクチンが高い感染予防の効果があることは報道されており、それを信じていますが、この傾向はもしかしたら感染力の高い変異ウイルスが関係しているかもしれません。
 定期的にチェックしていきます。今年後半にはある程度通常生活に戻れるのではないかと、期待しているのですが。

更新(2021年1月31日)

 1月8日からの緊急事態宣言以降の傾向をしりたくて、久しぶりにCOVID-19の感染状況のデータを処理しました。

japan.png

 このグラフを見ると、日本の第三波は11月からはじまっており、11月中に大きく増加しましたが、12月にその傾向はゆるんだところに、年末に一気に増加しているように思えます。その国の習慣によるものが大きいですね。また、緊急事態宣言以降は新規感染者数が大きく低下しているのがわかります。

 japan_recovery.png
 感染者数、回復数、死者数の総計のトレンドです。Shifted Recoveredは回復数のグラフを−25日間にしたものです。第一波では、この25日間のシフトしたものが感染者数の増加傾向と一致していることから、感染者の回復までの日数は25日程度であったことがわかります。いポプ、第二波、第三波では、25日よりも短い10日程度が一般的な回復数と推測されます。これは、医療従事者の方々のご努力により、第一波の経験から治療方法が作られ、その結果によるものと思われます。皆様のご尽力に尊敬し感謝いたします。

 多くの感染者数が報告されているアメリカの傾向を見てみます。

US.png
 変わらず新規感染者数が多くはありますが、新年後から大きく減少しているのがわかります。ロックダウン等の措置もありますが、世界に先駆け早くからワクチンによる感染予防対策がされている効果があるものと期待したいところです。
 次に、世界で一番ワクチン接種率の高いイスラエル(30%以上)の新規感染者数の傾向を見てみます。

israel.png
 イスラエルも年末年始の第三波の中にいると思われます。ただ、ワクチンの効果がまだみられないのか、日本や米国に比べて新規感染者数の減少率がそれほど高くありません。ニュースでも、イスラネルの関係者の証言として「接種を一通り終えた人のサンプル数はワクチンの有効性について結論を出すのには十分ではない」とあります。また、感染封じ込めに至っていない背景には、従来株よりも感染力が強く、病原性も高い可能性が指摘されている英国型変異株の存在がある、とイスラエルの保健省の当局者が語っているそうです。しばらく様子を見る必要がありますが、ワクチンを接種したからといってすぐに安心することはせず、これまでと同じレベルでの感染予防措置を行い、注意を続ける必要があることを示唆していると考えます。

 最後に、世界でも感染予防対策が成功している台湾をみてみます。

taiwan.png

 東京の2倍以上の人口(約2300万人)の台湾での新規感染者数が一日にひと桁台であることは驚きです。台湾の方々と仕事でオンライン会議を定期的に行っていますが、いまでは普通に出勤して業務をされているそうです。ここから学ぶことは多いですね。世界の感染症の予防対策の成功例と思いますので、その対策・対応を模範として共有し、今後に活かしていくとが重要と考えます。

 世界の感染状況

world.png

更新(2020年5月20日)

外出自粛要請にて感染者数がトレースできる量まで減らすことができれば,次は感染者および濃厚接触者のトレースによって,ワクチンが開発されるまでの”新型コロナウィルスとともに(with COVID-19)”により,頃名前の”日常”に少しづつ戻れることを望んでいましたが,昨日台湾の方とミーティングしたところ,日常に戻っているよ,とのことでした.成功事例として,学びが多いですね.
スクリーンショット 2020-05-20 9.48.34.png

蔡英文 Tsai Ing-wen
@iingwen

1️⃣: Donating 10 million face masks to countries in need.
2️⃣: Increasing production of quinine.
3️⃣: Sharing our use of technology to trace & investigate outbreaks.

米国の状況はこのようになっています.
スクリーンショット 2020-05-20 9.48.43.png

ピークは超えたように思えますが,新規感染者の推移は”なだらかな減少”であり,もうしばらく時間がかかるように思えます.

更新(2020年3月26日)

データのファイル名の変更があったため,コードGithubを更新しました.

更新(2020年5月20日)

日本の感染状況

スクリーンショット 2020-05-20 9.47.09.png

スクリーンショット 2020-05-20 9.46.58.png

はじめに

新型コロナウィルスCOVID-19が世界中に拡がり.その驚異がニュースで毎日・毎時間アナウンスされています.ただその報道の多くは日本の感染状況が中心であり,世界の感染状況となると大きく感染者が増えている一部の国のみに感じます.ただ,そういった世界の悲惨な状況をみると,日本はまだ安心できるように思え,感染が停滞もしくは収束してきているようにも感じます.
でも,実際どういう状況なのか,公開されている情報をもとに,日本を含む世界各国の感染状況を調べてみました.
私が作成したコードはGithubにおいてありますので,よろしければダウロードしてご使用ください.

新型コロナウィルスの感染状況

 この考察を行うきっかけとなったのがニューヨーク・タイムズの Which Country Has Flattened the Curve for the Coronavirus?(2020年3月19日報道)になります.一部をここで紹介します.

スクリーンショット 2020-03-23 22.34.13.png
中国と韓国の新規感染者数の傾向(©The New York Times)

中国と韓国の新規感染者数の7日間の移動平均のトレンドをみると,移動の制限などの各国の対策が良好な結果を生み出しており,両国ともに新規の感染者数が大きく減少しています.一方,同じアジアのシンガポール,香港および台湾は,2月の半ばにはその対応によって減少傾向がみられましたが,3月中旬から徐々に増加傾向がみられます.

スクリーンショット 2020-03-23 22.34.24.png
シンガポール,香港および台湾の新規感染者数の傾向(©The New York Times)

また,深刻な被害が報告されているイタリアは,その感染者数が大きく増加しているのがわかります.

スクリーンショット 2020-03-23 22.34.36.png
イタリアの新規感染者数の傾向(©The New York Times)

 ここでは, Johns Hopkins Universityが公開しているデータを用いて作られています. これは3月19日の記事であり,各国が行っている対策によって現状がどう変化したのか,好転しているのかそれとも悪化しているのか.日々公開されているデータをベースに現状を正しく把握および認識するために同様の結果を求めてみます.

現在の感染状況を把握する

Johns Hopkins Universityが公開しているデータが日々更新している”time_series_covid19_confirmed_global.csv”をインプットデータとして,各国の日々の新規感染者数,およびその7日間の移動平均のトレンドを求めます.ここで積算感染者数ではなく新規感染者数としているのは,日々の変化を見える化することにより,各国の対策により状況がどのように変わっているのか,また世界の各国の傾向がどうであるのか,ひと目で見ることに意味があると考えているからです.

コードの実行環境は,Google Colaboratoryを利用しています.
Googleのアカウントをお持ちの方は,ドライブにファイルをアップしてご自身で実行してみてください.自分ごととして,関心度が大きく増します.

ここでは,代表的なコードとそのアウトプットの紹介をします.
全体はコードはGithubにてご確認ください.

まずは下記のコードを実行し,データをダウンロードします.データは日々更新されており,日本時間の午前9時(UT時間の0時)に更新されます.データのソースについては,Johns Hopkins University@githubをご確認ください.
例えば,日本の報告データに間違いがあると,pull requestで提案するなどのフィードバックがかけられています.

#git clone でCODIV-19のデータを使えるようにダウンロードする.
!git clone https://github.com/CSSEGISandData/COVID-19.git

その後,下記を実行することでデータを確認します.

path = '/content/COVID-19/csse_covid_19_data/csse_covid_19_time_series/'
df = pd.read_csv(path + 'time_series_covid19_confirmed_global.csv')

では,登録されている国・地域の情報を確認します.

country = df['Country/Region'].unique()
print(country)

print('Number of country/region: ' + str(len(country)))

実行結果は以下となります. 全部で170カ国・地域の情報があります.

['Afghanistan' 'Albania' 'Algeria' 'Andorra' 'Angola'
 'Antigua and Barbuda' 'Argentina' 'Armenia' 'Australia' 'Austria'
 'Azerbaijan' 'Bahamas' 'Bahrain' 'Bangladesh' 'Barbados' 'Belarus'
 'Belgium' 'Benin' 'Bhutan' 'Bolivia' 'Bosnia and Herzegovina' 'Brazil'
 'Brunei' 'Bulgaria' 'Burkina Faso' 'Cabo Verde' 'Cambodia' 'Cameroon'
 'Canada' 'Central African Republic' 'Chad' 'Chile' 'China' 'Colombia'
 'Congo (Brazzaville)' 'Congo (Kinshasa)' 'Costa Rica' "Cote d'Ivoire"
 'Croatia' 'Cruise Ship' 'Cuba' 'Cyprus' 'Czechia' 'Denmark' 'Djibouti'
 'Dominican Republic' 'Ecuador' 'Egypt' 'El Salvador' 'Equatorial Guinea'
 'Eritrea' 'Estonia' 'Eswatini' 'Ethiopia' 'Fiji' 'Finland' 'France'
 'Gabon' 'Gambia' 'Georgia' 'Germany' 'Ghana' 'Greece' 'Guatemala'
 'Guinea' 'Guyana' 'Haiti' 'Holy See' 'Honduras' 'Hungary' 'Iceland'
 'India' 'Indonesia' 'Iran' 'Iraq' 'Ireland' 'Israel' 'Italy' 'Jamaica'
 'Japan' 'Jordan' 'Kazakhstan' 'Kenya' 'Korea, South' 'Kuwait'
 'Kyrgyzstan' 'Latvia' 'Lebanon' 'Liberia' 'Liechtenstein' 'Lithuania'
 'Luxembourg' 'Madagascar' 'Malaysia' 'Maldives' 'Malta' 'Mauritania'
 'Mauritius' 'Mexico' 'Moldova' 'Monaco' 'Mongolia' 'Montenegro' 'Morocco'
 'Namibia' 'Nepal' 'Netherlands' 'New Zealand' 'Nicaragua' 'Niger'
 'Nigeria' 'North Macedonia' 'Norway' 'Oman' 'Pakistan' 'Panama'
 'Papua New Guinea' 'Paraguay' 'Peru' 'Philippines' 'Poland' 'Portugal'
 'Qatar' 'Romania' 'Russia' 'Rwanda' 'Saint Lucia'
 'Saint Vincent and the Grenadines' 'San Marino' 'Saudi Arabia' 'Senegal'
 'Serbia' 'Seychelles' 'Singapore' 'Slovakia' 'Slovenia' 'Somalia'
 'South Africa' 'Spain' 'Sri Lanka' 'Sudan' 'Suriname' 'Sweden'
 'Switzerland' 'Taiwan*' 'Tanzania' 'Thailand' 'Togo'
 'Trinidad and Tobago' 'Tunisia' 'Turkey' 'Uganda' 'Ukraine'
 'United Arab Emirates' 'United Kingdom' 'Uruguay' 'US' 'Uzbekistan'
 'Venezuela' 'Vietnam' 'Zambia' 'Zimbabwe' 'Dominica' 'Grenada'
 'Mozambique' 'Syria' 'Timor-Leste' 'Belize' 'Laos' 'Libya']
Number of country/region: 170

中国や米国は,州レベルで区分されているものもありますが,以下のコードを実行し国レベルのデータに変換します.
また, ここでは緯度・経度情報が不要なため削除します.

df1 = df.groupby('Country/Region', as_index=False).sum()

そして,現在のデータは列が日付になっているため,行と列を変換してグラフ化します.
対象国のトレンドグラフは以下を実行し求めます.

df1 = df.groupby('Country/Region', as_index=False).sum()

次に,ダウンロードしたデータは積算感染者数であるため,各日の差分をとることで,新規感染者数に変換します.

df2 = df1.diff(1)

そして,以下を実行し7日間の移動平均を求めます.

#過去七日間の平均値を算出する.

for i in range(len(df2.columns)):
    df2[df2.columns[i]+'_7-dayAverage'] =df2[df2.columns[i]].rolling(7).mean().round(1)

それでは,日本を例に新規感染者数のトレンドを求めます.

#日本の感染傾向を視覚化する.
import matplotlib.ticker as ticker

#列番号の取得
id_japan = df2.columns.get_loc('Japan') #対象国に変更すると,それぞれの国のトレンドを求めることができます.

#グラフ化
fig, ax  = plt.subplots(figsize=(5, 5))

ax.bar(x = df2.index, height = df2[str(df2.columns[id_japan])], color = 'mistyrose', label = "New cases")
ax.plot(df2.index, df2[str(df2.columns[id_japan + len(country)])], color = 'red',label = "7-day average")
ax.set_xlabel("Date")
ax.set_ylabel("Confirmed cases")
plt.rcParams["font.size"] = 10
ax.xaxis.set_major_locator(ticker.MultipleLocator(30.00))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%b'))
plt.title(str(df2.columns[id_japan]),fontweight="bold")
plt.legend(bbox_to_anchor=(0, 1), loc='upper left', borderaxespad=1, fontsize=10)
plt.show()

スクリーンショット 2020-03-25 10.31.35.png

これをみるとわかりますが,2月も増加傾向でしたが,3月にはいってその増加率が大きくなっているのがわかります.
厚生労働省の報告によると,新型コロナウィルスの潜伏期間が1-12.5日(多くは5-6日)とされていることから, 2月27日の政府発表により"ここ1、2週間が極めて重要な時期"として学校の臨時休業などの移動を制限する措置がとられましたが,それでも増加が見られます.
次に韓国の状況を見てみます.

スクリーンショット 2020-03-25 10.38.41.png

韓国は2月に韓国慶尚北道大邱(テグ)地域にて多くの感染者の報告がありましたが,その後の移動制限などの対策により,新規感染者数が大きく減少しているのがわかります.韓国の対策とその結果は大きく参考になると思います.韓国の対策の詳細については,こちらの記事が参考になります.

次に,連日 新型コロナウィルスの感染拡大が報告されているイタリアを見てみます.

スクリーンショット 2020-03-25 10.44.32.png

大きく移動制限の措置が全土にとられた3月10日から2週間ほどたっていますが,新型コロナウィルスの潜伏期間を考えても,残念ながら今も増加傾向にあります. ただ,その増加率が少し減少しているようにも見えているのは期待したいところです.

各国の感染状況(2020年3月25日現在)

これまで,代表的ないくつかの国を対象に新規感染者のトレンドをみましたが,最後に世界各国の傾向をグラフ化します.

#世界各国の感染傾向のグラフ化

fig, ax  = plt.subplots(dpi=100, figsize=(60, 120))
plt.subplots_adjust(wspace=0.4, hspace=0.6)
plt.gca().spines['right'].set_visible(False)
plt.gca().spines['top'].set_visible(False)
plt.gca().spines['left'].set_visible(False)
plt.gca().spines['bottom'].set_visible(False)
plt.tick_params(labelbottom=False)
plt.tick_params(bottom=False)

for i in  range(len(country)):
    ax = fig.add_subplot(20, 10, i+1)

    ax.bar(x = df2.index, height = df2[str(df2.columns[i])], color = 'mistyrose', label = "New cases")
    ax.plot(df2.index, df2[str(df2.columns[i + len(country)])], color = 'red',label = "7-day average")

    ax.set_xlabel("Date")
    ax.set_ylabel("Confirmed cases")
    plt.rcParams["font.size"] = 10
    ax.xaxis.set_major_locator(ticker.MultipleLocator(30.00))
    ax.xaxis.set_major_formatter(mdates.DateFormatter('%b'))
    plt.title(str(df2.columns[i]),fontweight="bold")
    plt.legend(bbox_to_anchor=(0, 1), loc='upper left', borderaxespad=1, fontsize = 7)

# general title
plt.suptitle("Where Countries Are on the Curve", fontsize=13, fontweight=0, color='black', style='italic', y=1.02)

dt_today = datetime.date.today()
plt.savefig(str(dt_today) + "_COVID-19_timeseries.png") #表示のみの場合は無効もしくは削除してください.
plt.savefig(str(dt_today) + "_COVID-19_timeseries.jpg") #表示のみの場合は無効もしくは削除してください.

この結果の画像は少し大きいのですが,以下に起きます(2020年3月25日現在).

2020-03-25_COVID-19_timeseries.png

コードを実行すれば各国の情報がすべて閲覧できますので,ぜひご自身で試してください.
ここから,新型コロナウィルスの感染は世界的に増加傾向であり,新たなフェーズに移っているのことを感じます.

コードや結果はgithubにおいてありますので,よろしければダウロードして使ってください.

おわりに

The New York Timesの記事に印象を受け,各国の新規感染者数の傾向を可視化してみました.
自分でデータを扱ってみるとこの状況が自分ごとになり,関心が高まっています.
最近では,毎朝コードを実行し,その状況を”自分ごと”として確認し,状態について考え報道を見ています.

この記事の考察は素人の個人が行ったものであり,何かを保証するものではないことをご理解ください.

ここで共有した情報やコードが新型コロナウィルスの感染対応に貢献できることを願い,また,新型コロナウィルスの感染縮小に向けて日々取り組まれている全ての方々に感謝いたします.

ご指摘・ご意見等ありましたらいただければ嬉しいです.
ディスカッションできることを願っています.

記事更新(2020年3月25日)

同じくJohns Hopkins Universityが公開しているデータにRecovered(回復者数)や死亡者数(Deaths)のデータもあるため,それを用いて感染者数とそれらとの関係から,各国の医療体制やその対応状況について考察してみます.

下記を実行し,回復者および死亡者数も含めた情報をインプットします.

path = '/content/COVID-19/csse_covid_19_data/csse_covid_19_time_series/'

df_c = pd.read_csv(path + 'time_series_19-covid-Confirmed.csv') #感染者数
df_r = pd.read_csv(path + 'time_series_19-covid-Recovered.csv') #回復者数
df_d = pd.read_csv(path + 'time_series_19-covid-Deaths.csv') #死亡者数

データのフォーマットは感染者数と同じため同様の処理をしていきます.

感染者は数日後に回復しているため,感染者数と回復者数との傾向から,回復までの日数を求めてみました.

td_d = datetime.timedelta(days=16) #回復日数を16日と仮定する.
df2_r.index = df2_r.index - td_d #回復者数の日付を16日前にシフトする.
df2_r

これでデータが揃いましたので,感染者数,回復者数,死亡者数および仮定した回復日をシフトした回復者数のトレンドをグラフ化します.
これらのデータはすべて積算になります.

#各国の感染傾向を視覚化する.
import matplotlib.ticker as ticker

#列番号の取得
id_x = df.columns.get_loc('Singapore') #シンガポールを代表として求める.関心のある国に変えることで,各国の状況を閲覧する.

#グラフ化
fig, ax1  = plt.subplots(figsize=(8, 8))


ax1.plot(df.index, df[str(df.columns[id_x -2*len(country)])], color = 'red',label = "Confirmed Cases")
ax1.plot(df.index, df[str(df.columns[id_x - len(country)])], color = 'green',label = "Recovered")
ax1.plot(df.index, df[str(df.columns[id_x ])], color = 'yellow',label = "Deaths")
ax1.plot(df2_r.index, df2_r[str(df2_r.columns[id_x -2*len(country)])], color = 'blue',label = "Shifterd Recovered")

ax1.set_xlabel("Date")
ax1.set_ylabel("Confirmed Cases - Recovered")
plt.rcParams["font.size"] = 10
ax1.xaxis.set_major_locator(ticker.MultipleLocator(30.00))
ax1.xaxis.set_major_formatter(mdates.DateFormatter('%b'))
plt.title(str(df.columns[id_x]),fontweight="bold")

ax1.legend(loc='upper left', borderaxespad=1, fontsize = 10)
plt.show()

先程の新規感染者の傾向にて,当初対策がうまく機能していたと思われるシンガポールをみてみます.

スクリーンショット 2020-03-25 23.57.59.png

これより,16日前にシフトされた回復者数(青)のトレンドは,感染者数(赤)のトレンドとほぼ重なっており,回復に至る日数は16日で正しそうです.
それに対して,死亡者数(黄色)は,感染者数が急激に増加している3月中旬以降でほぼ0に近い値を維持しており,現状は医療環境が安定しているように思えます.
ただ,ここで急激に増加している感染者に対して,多くの感染者が回復に至るのか,不安も感じます.

次に,日本の場合を見てみます.

スクリーンショット 2020-03-26 0.03.11.png

2月中旬までは,感染者数とシフトした回復者数がほぼ一致しており,この期間は多くの感染者が回復にいたっています.
一方,それ以降はシフトした回復者数が感染者数との乖離が大きくなっており,死亡者数も少し増加傾向が見られます.
感染者が単純に回復に至るまでの日数が16日以上必要になっているだけならばいいのですが,この乖離が医療環境の要因とすると,今後が大きく懸念されます.
先程,東京都知事が記者会見を行い,現在”重大局面”にいることが示されました.これ以上乖離させないためにも,という判断なのかもしれません.

次に,医療崩壊がニュースで報道されているイタリアを見てみます.

スクリーンショット 2020-03-26 0.08.00.png

イタリアは,2月下旬までの感染者数であれば,現状の医療設備でも回復させることができるキャパシティはあったように思えます.
ただ,先の2つの国と比べて,3月に入ってからの感染者数の増加率が高く,また死亡者数の増加も同じく高いことがわかります.
これだけでは現状がわかりませんが,この傾向からかなり厳しい医療環境であることが伺われます.

次に,イタリアの山岳地帯の小国であるサン・マリノを見てみます.

スクリーンショット 2020-03-26 0.13.50.png

イタリア内にある国であるため,イタリアと同じく3月に入ってから急激に感染者数が増加しています.
また,死亡者数は回復者数を上回っており,現地では十分な医療体制が組まれていないことが推察されます.

最後に,世界の各国のデータに対して同様の解析処理をした結果を示します.
今回は回復日数を16日に固定しましたが,各国の医療環境や制度の違いもあり,それぞれに適した値にするのが良いかもしれません.
また,アメリカは3月中旬から感染者数が急激に増加したこともあり,情報が少ないためにここから推測することは難しいかと思います.

新規感染者数の推移と,今後の回復者数および死亡者数の関係の2つの視点から,各国の対策が機能できているのかどうか,考察していきたいと思います.

2020-03-25_COVID-19_timeseriesA.png

こちらのコードもGithubにアップしてありますので,よろしければダウロードしてご使用ください.

参考記事

Which Country Has Flattened the Curve for the Coronavirus?(2020年3月19日報道)
2019-nCoV Global Cases ( by Johns Hopkins CSSE) Visualization(Dash Board)
2019 Novel Coronavirus COVID-19 (2019-nCoV) Data Repository by Johns Hopkins CSSE
新型コロナウイルスに関するQ&A(一般の方向け)@厚生労働省

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4