Rで何かをしたり、読書をするブログ

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

WHOの新型コロナウィルスのデータ分析2 - R言語で3月18日時点の全体の死亡率や地域別・国別の死亡率を計算する。

 

www.crosshyou.info

 の続きです。

前回から20日ほど経過しました。世界的に感染者数が拡大しています。

この3月18日時点のCoronavirus disease 2019(COVID-19) Situation Report - 58

のデータを使って、全体の死亡率などを計算してみましょう。

f:id:cross_hyou:20200319185200p:plain

https://www.who.int/docs/default-source/coronaviruse/situation-reports/20200318-sitrep-58-covid-19.pdf?sfvrsn=20876712_2

 

f:id:cross_hyou:20200319191049p:plain

こんな感じでCSVファイルにしました。Regionが地域、Countryが国、Kansenが感染者数、Shibouが死亡者数です。

R言語のread.csv関数でファイルを読込みます。

f:id:cross_hyou:20200319191747p:plain

 

read.csv関数でCSVファイルをR言語に読込みました。

str関数でデータ構造を確認しています。4つの変数、161の観測です。161の国や地域で感染が認められたということです。前回は中国のは各省ごとに報告されていましたが、今回は中国と一つにまとめられています。

死亡率を表す変数を作成します。

f:id:cross_hyou:20200319192254p:plain

死亡率の平均は2.3%ぐらいですね。最大値が100%とあるので、どこかの国は感染者と死亡者の数が同じです。

それでは、死亡率の上位10を見てみます。

f:id:cross_hyou:20200319192745p:plain

まず、order関数でDRの大きい順に表示するようなインデックスを作ります。

そして、head関数で上位10だけを表示しました。スーダンとケイマン諸島は感染者1人、死亡者1人ですので死亡率100%です。

感染者数が100人以上の国でやってみましょう。

f:id:cross_hyou:20200319193415p:plain

サンマリノが10.6%で一番です。イタリア7.9%、イラク7.1%、フィリピン6.4%、イラン6.1%、スペイン4.4%、中国4.0%、日本3.4%、インドネシア2.9%、イギリス2.8%です。

plot関数を使って、感染者数の対数を横軸、死亡者数の対数を縦軸にして散布図を描いてみます。

f:id:cross_hyou:20200319194032p:plain

f:id:cross_hyou:20200319194044p:plain

hist関数を使って死亡率のヒストグラムを描いてみます。

f:id:cross_hyou:20200319194616p:plain

f:id:cross_hyou:20200319194630p:plain

感染者数が100人以上の国だけでヒストグラムを描きました。赤い垂線が日本の死亡率です。

地域別の死亡率をまとめてみます。tapply関数で地域別の感染者数と死亡者数を合計します。

f:id:cross_hyou:20200319195052p:plain

この二つのデータから地域別の死亡率を計算します。

f:id:cross_hyou:20200319195256p:plain

地域の中に、Diamond Princessがあります。これはクルーズ船のダイヤモンドプリンセス号です。死亡率、1%以下ですね。世界各国から日本の対応が悪かったようなことが言われていましたが、この死亡率を見る限り、日本の関係者は良くやったのではないでしょうか?Eastern Mediterranean RegionとEuropean Regionが死亡率高いですね。

barplot関数で棒グラフにしてみます。

f:id:cross_hyou:20200319200201p:plain

f:id:cross_hyou:20200319200222p:plain

一番左のバーがダイヤモンドプリンセス号の死亡率です。

そうだ、全体の死亡率を出しましょう。

f:id:cross_hyou:20200319200438p:plain

全体の死亡率は4.1%ですね。

こんどは、cbind関数でregShibouとregKansenを合体させて地域別の死亡者数と感染者数のクロス表を作成しましょう。

f:id:cross_hyou:20200319200903p:plain

このマトリックス、mtxをchisq.test関数でカイ二乗検定します。地域別で死亡率に違いはあるかどうか調べます。

f:id:cross_hyou:20200319201213p:plain

p値は2.2e-16ですから有意です。地域が違うと死亡率も違いがあります。

どの地域の死亡率が有意に高く、どの地域の死亡率が有意に低いかをみてみます。カイ二乗検定した結果の中の$stdresというのでわかります。

f:id:cross_hyou:20200319201520p:plain

調整済み残差が表示されます。だいたい、絶対値で2よりも大きいところが有意です。

ダイヤモンドプリンセス号は死亡者が有意に少ないですね。

今回は以上です。