本記事は機械学習の徹底解説シリーズに含まれます。機械学習の記事一覧へ初学者の分かりやすさを優先するため,多少正確でない表現が混在することがあります。致命的な間違いがあればご指摘いただけると助かります。目次Kermack-McKendrickのSIRモデルとはKermack-McKendrickのSIRモデルは「感受性(susceptible)個体」「感染(infectious)個体」「免疫のある(removed)個体」の3者を対象とした収支式の一種です。以下にKermack-McKendrickのSIRモデルの概要図を示します。注意すべき点として,Kermack-McKendrickのSIRモデルは感染の流行過程のモデルとしては非常に単純なものであり,例えば一回感染した人が再び感染するような循環や潜伏期間などには対応できないことが指摘できます。具体的には,以下の常微分方程式を考えます。\label{eq:3}\end{align}ここで,$S$は感受性者数,$I$は感染者数,$R$は回復(死亡)者数,$N$は総人口,$\beta$は感染率,$\gamma$は回復(死亡)率を表します。以下で定義される$R_{0}$は基本再生産数と呼ばれ,感染率と回復率の比を表しており「一人の感染者がどれだけの二次感染者を産み出すか」を表しています。\frac{\beta}{\gamma}\end{align}Kermack-McKendrickのSIRモデルは,式(\ref{eq:1})と式(\ref{eq:3})を連立させて変数分離形の微分方程式を解くことで解析的な解が得られます。,$S+I+R=N$という制約式があることから,式(\ref{eq:1})と式(\ref{eq:3})を連立させることで,同時に式(\ref{eq:2})も考えていることになることに注意しましょう。本記事では,pythonのscipyライブラリを利用して上記の微分方程式を解きます。対象都市は京都市とします。パラメータ設定に関しては以下の三条件を考えます。初期感染者数が多い場合それぞれについて,横軸を時間(三年間),縦軸を個体数としたグラフを描画することで,Kermack-McKendrickのSIRモデルについて考察を加えていきます。最初に実装の概要をお伝えしていきます。"Removed"])2020/10/28時点パラメータは以下のように設定します。ここでは,感染率が陽性率と同等程度と近似することにします。R_0$(総人口が$N$であることから計算)すると,描画されたグラフは以下の図のようになります。2020/10/28時点における京都市のSIRモデルこのグラフから,三年間で感染者数が爆発的に増えるということはなく,徐々に感染者数が増えていくことが分かります。基本的なパラメータは10/28と同様に設定します。本節では基本再生産が$2$の場合を考えます。すると,描画されたグラフは以下の図のようになります。基本再生産数が2の場合のSIRモデルこのグラフから,基本再生産数が2に増えるだけで,感染者数が約一年後から爆発的に伸び始め,二年後にはほぼ収束してしまうことが読み取れます。最終的な免疫獲得者および死亡者数の合計は,$120$万人に到達します。基本生産数はKermack-McKendrickのSIRモデルにおける振る舞いを定める大きな要因であることが分かりますね。自粛要請も非常に妥当な政策であったということです。基本的なパラメータは10/28と同様に設定します。本節では$I_0$が$10$万の場合を考えます。すると,描画されたグラフは以下の図のようになります。初期感染者数が多い場合のSIRモデルこのグラフから,10/28の状況下と比べて,感受性者数が減っていく傾向にあることが分かります。これは,基本再生産数が多い場合におけるピーク後の形と一致しており,今回の初期値$I_0=100000$がすでにKermack-McKendrickのSIRモデルにおけるピーク後の値を与えていたことを示唆しています。実際,「基本生産数が多い場合」の図において「Infectious」の数が$100000$の部分はピークの直前・直後に位置しており,基本再生産数が10/28時点で$1.06$と比較的低いため,今回の「初期感染者数が多い場合」はピーク後のような振る舞いを示したものと考えられます。実際,同様のパラメータ設定において基本再生産数を$2$に設定すると,以下の図のようにピーク直前からの振る舞いを示しています。※コメントに返信があったらメールで通知する。私はロボットではありません。