よちよちpython

独習 python/Qpython/Pydroid3/termux/Linux

新コロ陽性率

暇つぶしに陽性率を計算します。

  • 陽性率 = 陽性者数 / 検査人数

データ取り込み

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()

f:id:chayarokurokuro:20200808002237j:plain

陽性者数と検査人数の相関係数

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()

f:id:chayarokurokuro:20200808002310j:plain

陽性率平均

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人ぐらいにおさまるんじゃないでしょうか。
こんなことで騒いでいたら、毎年インフルで経済自粛させないといけなくなるよ。



政治家やマスコミは「新型コロナより多くの死者を出す為に騒いでいる」ということです。