新コロ陽性率
暇つぶしに陽性率を計算します。
- 陽性率 = 陽性者数 / 検査人数
データ取り込み
import numpy as np import matplotlib.pyplot as plt import pandas as pd urls = [ "https://www.mhlw.go.jp/content/pcr_positive_daily.csv", #陽性者数 "https://www.mhlw.go.jp/content/pcr_tested_daily.csv" #PCR検査実施人数 ] df_positive = pd.read_csv(urls[0]) df_tested = pd.read_csv(urls[1])
検査人数と陽性者数のデータ個数を合わせる
# 最小の行列取得 min_len = min([df_positive.shape[0],df_tested.shape[0]]) #print(min_len) # 最小行のデータ個数に置換 df_posi_new = df_positive.iloc[-min_len:] #print(df_posi_new) df_tested_new = df_tested.iloc[-min_len:] #print(df_tested_new)
Numpy配列に変換
# 陽性者数 np_posi_new = np.array(df_posi_new.iloc[:,1]) # 検査人数 np_tested_new = np.array(df_tested_new.iloc[:,1])
グラフ(検査人数 - 陽性者数)
plt.scatter(np_tested_new, np_posi_new)
plt.savefig("test_posi_ratio.png")
plt.show()
陽性者数と検査人数の相関係数
np.corrcoef([np_posi_new, np_tested_new])[0,1]
0.7019630803793241
日ごと陽性率
r_posi = np_posi_new/np_tested_new
#r_posi
グラフ(日ごと陽性率)
#横軸(日数 x = np.arange(min_len) plt.plot(x,r_posi) plt.savefig("r_posi.png") plt.show()
陽性率平均
r_posi.mean()
0.20864685882430697
陽性率最大・最小
print("陽性率最大",r_posi.max()) print("陽性率最小",r_posi.min())
陽性率最大 10.017543859649123
陽性率最小 0.0
陽性率の中央値
np.median(r_posi)
0.05352206126285525
最近1ヶ月の陽性率平均
r_posi[-32].mean()
0.020904229460379193
おわりに
検査人数に陽性率約0.02~0.05を掛けて出る値がだいたいの陽性者の数になるかな。
日本人を全員検査したら250~500万人の陽性者が出る。その内の2割に症状が出るとして、患者が約50~100万人。
致死率は1%以下だろうから死者数は1500人~5000人ぐらいにおさまるんじゃないでしょうか。
こんなことで騒いでいたら、毎年インフルで経済自粛させないといけなくなるよ。
政治家やマスコミは「新型コロナより多くの死者を出す為に騒いでいる」ということです。