見出し画像

新型コロナ - 世界のデータ解析(1)

知人から、武漢からの距離と感染者数を調べてみたら?と助言がありました。日本をはじめ東アジアの感染者数・死者数が少ないのは、我々がよく引く「普通の風邪」ですでにcovid-19に対する何らかの「交差免疫」を持っているからでは? 武漢に地理的に近い東アジアの我々には、その土地に特有なウイルスへの耐性をすでに持っているのでは?と言うアイデアです。

エクササイズとして試しに作ってみます。

1. Data

データを参照するのは以下のJohn's Hopkins とOxfordの二つのサイト:

・ OVID-19 Dashboard by the Center for Systems Science and Engineering (CSSE) at Johns Hopkins University (JHU)
・ Our World in Data -  Coronavirus Pandemic (COVID-19)

両サイトとも、GitHubでデータを公開している。

前者はArcGISの地図上に感染者数を表示しているので、緯度・経度の情報を持っている。後者は感染者数を100万人で割ってnormalizaしたデータをすでに作っている。どこにデータを持っているかは、各サイトを注意して見ること。

画像5

画像4


これらのデータはpandasで直接読める。rawデータを読むこと。例えば、owidのGitHubページであれば、

画像6

RawをclickしてそのURLをコピーすること。

下でそれぞれのデータから必要変数(CSSEでは緯度・経度、owidではcases per 1M)を書き出している。ここで注意するのはcsseデータは例えば大きな国や植民地があれば一つの国に複数にわたるposition infoのデータがある。

画像2

owidのdata tableを見るとわかるが各columnに国名、rowに日があるのでCSSEのデータのように行と列を変更して書き出したい。df.transpose()でそれを行う。その後、一行目(iloc[:,0])の国名と最後の行(iloc[:,-1])の最新のデータ(累積)だけを取り出している。

画像3

ここで、多分二つのdata tablesを比較してmergeするなど、python/pandasでできるはず(ref)だが、私はgoogle spread sheetで自分でmergeした。200ほどの国のデータだし、複数position infoがある国は数個だし。データに目も通せるし。

最終的に作ったデータの五行は↓。

Country,20200630,Lat,Log
Afghanistan,802.449,33,65
Albania,856.905,41.1533,20.1683
Algeria,309.48,28.0339,1.6596
Andorra,11065.812,42.5063,1.5218

2. Procedure

[1] データを読む。owidから抽出した国名と6月30日のデータ(スペインは6/29)と、CSSEから抽出した緯度・経度のデータがある。

画像7

武漢の緯度・経度と各国の緯度・経度から距離をnumpyを使って計算する。

画像8

ここのサイトで距離を計算してくれるので、アフガニスタンでチェック。

画像1

plotlyでplotしてみる。Bubble size は感染者数/1M。htmlでinteractiveな図を出してくれる(ここでは載せない)。

画像9

綺麗に見えるplotでも情報量が多いと余計にわかりにくい図になる時があります。seabornでもplot。

画像10

3. Analysis & Summary

各国の武漢からの距離と100万人中の感染者数の相関を調べてみた。相関はみられない。ただし、国によって初めての感染者がでた日は異なる。各国で最初の感染者から何日目と決めて累積数を求めた方が良い。

患者数の多い例えばアメリカの移民のグループでデータを分けるなどの研究・解析の方が良い気がする。

4.  Reference

今は読む時間ないけど、あとで読んでみたいもの。




この記事が気に入ったらサポートをしてみませんか?