戯言日記

Rの話だと思ったら唐突にサバゲーが混じってくる何か。

3/9時点の各国におけるコロナウイルス発症者数の人口比を調べてみる

コロナウイルス関連で世界各国が日本に入国制限をかけたり、WHOが名指しで憂慮してるとか言ってるのを見て、「各国の人口とか考えずに話進めていいの?」って思った。
人口が多ければ感染者数も多くなるのはしょうがないし、その辺は考慮した方がいいのでは?っていう。

という訳で、調べてみる。
なお感染症に関しては素人である。


今回の解析、Rでやってはいるけど難しいことはしてない。
強いて言えば文字列からデータ引っ張るのにエクセルよりはスマートにやってるかな程度。

ちなみに国内事例に関してはNHKの特設サイトがやたら分かりやすくデータを可視化してる。

www3.nhk.or.jp

累計と日別の感染者数をインタラクティブなグラフで表示している。
ぱっと見た感じだと、日別の発症人数が多くなってきている気がする。先週に「ここ1~2週間が大事な局面」的なことを言っていたが、何となく分かった気がする。


解析のために、まずは国内事例のデータを参照する。
下に書いたけど、国別のデータをNHKから引っ張ってきた関係で、国内事例も上のNHKのサイトに載っていた3/9時点のデータを使う。厚労省のデータに基づいてるとは言っているので問題ないと判断。

地域別に見たければ厚労省のHPから国内事例のデータを確認できる。

www.mhlw.go.jp

PDFだと397名なのにHPには409名って書いてて何で?ってなったけど、よく見たらチャーター機の事例とかは別として扱ってるらしい。


# 3/8 12:00時点のデータ
J_data <- "全国397名北海道97名宮城県1名秋田県1名福島県1名栃木県2名埼玉県4名群馬県1名千葉県20名東京都60名神奈川県34名新潟県6名石川県4名山梨県2名長野県2名岐阜県2名静岡県1名愛知県68名三重県1名滋賀県1名京都府8名大阪府33名兵庫県9名奈良県2名和歌山県12名広島県1名山口県1名愛媛県1名高知県9名福岡県3名熊本県5名大分県1名宮崎県1名沖縄県3" %>% stringr::str_split("名", simplify = TRUE)
n <- J_data %>% readr::parse_number()
a <- J_data %>% stringr::str_remove(as.character(Num))
Pac_all <- tibble(Area = a, Number = n)
Pac_all


各国のデータは3/9、4:52公開のNHKのオンライン記事からもらってくる。
記事の中には10ヵ国しか載ってなかったけど、他に当てもないので妥協。

www3.nhk.or.jp

データの取る時間はなるべく寄せたけど、時差の影響とか考えると統一は難しいので、今回はざっくりで進める。

あとよく見たら中国のデータが無かったので、これも3/9、11:30公開のNHKの別記事から拝借。

www3.nhk.or.jp

10ヵ国のデータは文章になっているので、これをRで適当に整形してデータに変える。 日本と中国のデータは入っていないので、記事のデータを整形しやすい形で文章に加えておく。


data1 <- "日本が480人、中国が80735人、イタリアが7375人、韓国が7313人、イランが6566人、フランスが1126人、ドイツが902人、スペインが605人、イギリスが269人、スイスが332人、スウェーデンが203人、オランダが188" %>% stringr::str_split("人、", simplify = TRUE)
n1 <- data1 %>% readr::parse_number()
a1 <- data1 %>% stringr::str_remove(as.character(n1)) %>% stringr::str_remove("が")
G_data <- tibble(Area = a1, Number = n1)
G_data


## # A tibble: 12 x 2
##    Area         Number
##    <chr>         <dbl>
##  1 日本            480
##  2 中国          80735
##  3 イタリア       7375
##  4 韓国           7313
##  5 イラン         6566
##  6 フランス       1126
##  7 ドイツ          902
##  8 スペイン        605
##  9 イギリス        269
## 10 スイス          332
## 11 スウェーデン    203
## 12 オランダ        188


世界人口は国連の出している「World Population Prospects, 2019 Revision」から抜粋。千人単位なので最後に1000倍するのも忘れないようにする。

[https://population.un.org/wpp/:embed:cite]


data2 <- "日本127202、中国1427648、イタリア60627、韓国51172、イラン81800、フランス64991、ドイツ83124、スペイン46693、イギリス67142、スイス8526、スウェーデン9972、オランダ17084" %>% stringr::str_split("、", simplify = TRUE)
n2 <- data2 %>% readr::parse_number()
a2 <- data2 %>% stringr::str_remove(as.character(n2))
G_pop <- tibble(Area = a2, Pop = n2*1000)
G_pop


## # A tibble: 12 x 2
##    Area                Pop
##    <chr>             <dbl>
##  1 日本          127202000
##  2 中国         1427648000
##  3 イタリア       60627000
##  4 韓国           51172000
##  5 イラン         81800000
##  6 フランス       64991000
##  7 ドイツ         83124000
##  8 スペイン       46693000
##  9 イギリス       67142000
## 10 スイス          8526000
## 11 スウェーデン    9972000
## 12 オランダ       17084000


最後に人口を感染者数で割れば人口○○人当たりの感染者数が出る。
グラフにする際はこれの逆数をとって分かりやすく可視化する。


G_all <- dplyr::left_join(G_data, G_pop) %>% dplyr::mutate(Result = Pop/Number) %>% dplyr::arrange(Result)
G_all


## # A tibble: 12 x 4
##    Area         Number        Pop  Result
##    <chr>         <dbl>      <dbl>   <dbl>
##  1 韓国           7313   51172000   6997.
##  2 イタリア       7375   60627000   8221.
##  3 イラン         6566   81800000  12458.
##  4 中国          80735 1427648000  17683.
##  5 スイス          332    8526000  25681.
##  6 スウェーデン    203    9972000  49123.
##  7 フランス       1126   64991000  57718.
##  8 スペイン        605   46693000  77179.
##  9 オランダ        188   17084000  90872.
## 10 ドイツ          902   83124000  92155.
## 11 イギリス        269   67142000 249599.
## 12 日本            480  127202000 265004.


f:id:doubtpad:20200310012625p:plain


結果だけ見ると、日本はぶっちぎりで感染者数の割合が低い。人口密度とか中国からの旅行者数とか考えると思ったより悪くない気はする。
このデータを元に中国と同じレベルで感染者が出た場合の人数を計算すると約7200人なので、そうならないよう対策していけば(現時点では)何とかなりそう。

ちなみに、3/9正午付の国内の最新データにおける感染者数480名に、敢えてクルーズ船の感染者数696名を含めて、合計1176名で解析すれば人口ベースでイギリスを追い抜く。ただしそこまでやっても下から2番目。


## # A tibble: 12 x 4
##    Area         Number        Pop  Result
##    <chr>         <dbl>      <dbl>   <dbl>
##  1 韓国           7313   51172000   6997.
##  2 イタリア       7375   60627000   8221.
##  3 イラン         6566   81800000  12458.
##  4 中国          80735 1427648000  17683.
##  5 スイス          332    8526000  25681.
##  6 スウェーデン    203    9972000  49123.
##  7 フランス       1126   64991000  57718.
##  8 スペイン        605   46693000  77179.
##  9 オランダ        188   17084000  90872.
## 10 ドイツ          902   83124000  92155.
## 11 日本           1176  127202000 108165.
## 12 イギリス        269   67142000 249599.


このデータから「日本は安全か」については何も分からないけど、「日本は他国と比べて危険か」については素人レベルでの反論ができそう。

感染者が人口の多い地域に行ったかとか、濃厚接触者がどれくらいいたかとか、そういう細かいところを突き詰めないとしっかりしたことが言えないのは事実だけど、今回の規模的にたぶんそこまでの調査とか解析ができていないであろうWHOが現時点で日本を名指しで憂慮するのはちょっと時期尚早だとは思う(小並感)。