スキップしてメイン コンテンツに移動

感染症モデル入門 (3) Excelで感染症 SIRモデルをシミュレーションする


感染症流行をExcelでシミュレーションする(ファイルがダウンロード出来ます)。

1.準備:ファイルのダウンロードをする。

SIRモデルのわかりやすい(つまり最も簡単な)Excelシートを作成した。Excelファイルを用いたシミュレーションは以下の二通りの方法で実行できる。

1.1 「Google スプレッドシート」を用いてオンラインでSIRモデルのシミュレーションを行う
 オンラインでシミュレーションをする場合には、Google スプレッドシートをつかいます。「ここ」をクリックしてください。「感染症数理モデル_入門と応用_森平_2020-05-29」というファイルがGoogle スプレッドシート上で開くはずです。次のような画面を見ることができます。


携帯などから利用していて、通信環境などが良くないときには、オフラインでの実行をおすすめします。>ファイル?オフラインで実行する、とすれば、自分の携帯にダウンロードしてあるGoogle スプレッドシート上でこのプログラムが実行できるはずです。


1.2 Excelファイルとしてダウンロードして、自分のPC上でシミュレーションをおこなう。
 Excelシートとして使い時は、上で示したGoogle スプレッドシートのメニュー上で>ファイル>ダウンロード>MicroSoft Excel (.xlsx) としてファイルをExcelプログラムしてダウンロードしてください。ダウンロードしたファイルを実行すると、次のような画面が現れるはずです。


2.初期値とパラメータ値を設定する。

2.1 Excelのシートで説明しよう。1行目は変数名とパラメー名前である。2行目の薄緑色のセルに具体的な数値を与える必要がある。ここでは次のような値を初期値とパラメータ値として設定している。

1)  感染可能人数の初期値:$S_0=100$人
2)  感染者人数の初期値:$I_0=1$人
3)  回復人数の初期値:$R_0=0$人
4)  感染率:$\beta=0.01$,つまり1パーセント
5)  回復率:$\beta=0.1$,つまり10パーセント
(削減率については今回は計算結果に影響の無いようにしている)

これらの数値を入力すれば、直ちに50日間の感染症流行の推移が数値とグラフで示される。3行目と4行目、つまり、1日目と2日目の計算がどのように行われるかは、セルの中身をみるか、下の図で数値例としてしめしてあるので、確認をされたい。


1.3 シナリオ分析: 初期値と感染率βと回復率γを変えてみる


薄緑色のセルの値を様々に変えて、どの様な時に、上の図のオレンジ色の曲線(感染人数の推移)で示したような、感染症の比較的短期間での収束がおこなわれるのか、言い換えれば、初期値やパラメータを変えることによって、こうしたことが「生じないのか」を検討することができる。

枇々木先生(慶應義塾大学理工学部)が、パラメータを変えたときの、シミュレーションを容易にできるように、Excelプログラムを修正したものを作っていいただきました。ここからダウンロードしてください。

Googleスプレッドシートや、携帯やタブレット上のExcelでは動きませんが、PC上のExcelでは動かすことが出来ます。


上の図のグレーの端にある左右の◀あるいは▶をマウスでうごかしてみてください。グラフが変わるはずです。





コメント

このブログの人気の投稿

感染症モデル入門: (2) SIRモデル(離散型)の場合。易しいです

感染症モデル入門 (2) SIRモデル(離散型)の場合。易しい! 1.SIR感染症モデル:一日ごとの人数変化  時間間隔が1日という離散的な時間変化を考えると、前回示した微分方程式での記述は、次のような差分方程式に変換できる。 \begin{eqnarray}   \mbox{感染可能人数}  \qquad  {S_{t + 1}} &=& {S_t} - \beta {S_t}{I_t} \hfill \\   \mbox{感染者数} \qquad  {I_{t + 1}} &=&  {I_t} + \beta {S_t}{I_t} - \gamma {I_t} \hfill \\   \mbox{回復人数} \qquad {R_{t + 1}} &=&  {R_t} + \gamma {I_t} \end{eqnarray} これは連続的な時間の変化$dt$を離散的な時間変化$\Delta t$でおきかえたものである。$dt$が「1秒間隔」であったのに対し、$\Delta t$は1日単位と考えてみよう。実際のCOVID-19のデータは1日単位で発表されるので、そのように考えたほうが実際に合っている。  時間経過を1日と考えたのであるから、感染可能人数を$dS_t \approx \Delta S_t$、感染者数を$dI_t \approx \Delta I_t$, 回復者数を$dR_t \approx \Delta R_t$と表現する。これらも1日あたりの人数の変化である。  そうすると、例えば、感染可能人数を示す微分方程式は$\left( {\frac{{\Delta {S_t}}}{{\Delta t}} = \frac{{\Delta {S_t}}}{1} = \Delta {S_t} = {S_{t + 1}} - {S_t}} \right) =  - \beta {S_t}{I_t}$と変換できる。つまり${S_{t + 1}} - {S_t} =  - \beta {S_{t}}{I_{t}}$を得る。...

感染症モデル入門 (5) 再生産数Rtとそれに基づくリスク管理

再生産数$R_t$を理解する。 1.再生産数とはなにか? SIRモデルから導出する。 離散的なSIR感染症モデルの2番目の式(2)を次のように変形する。 \begin{eqnarray}   {I_{t + 1}} &=& {I_t} + \beta {S_t}{I_t} - \gamma {I_t} \hfill \label{eqtn:1} \\    \Rightarrow \,\,\,\,\,\,{I_{t + 1}} - {I_t} &=& \left( {\beta {S_t} - \gamma } \right){I_t} \hfill \nonumber \\    \Rightarrow \,\,\,\,\,\,\frac{{{I_{t + 1}} - {I_t}}}{{{I_t}}} &=& \left( {\beta {S_t} - \gamma } \right) \end{eqnarray}  最後の式1の左辺の「感染者数の伸び率」が0を超える(下回る)ことは、感染人数$I_t$が増加(減少)することを意味する。言い換えれば、右辺が、 \[\begin{gathered}   \beta {S_{t}} - \gamma  > 0 \,\,\,\,\,\,\Rightarrow \,\,\,\,\,\,{S_{t}} > \frac{\gamma }{\beta } \hfill \\ \end{gathered} \] であれば、感染者数は増加する。 両辺を $\gamma/\beta$ で割ると, 明日の時点における再生産数を得ることができる。 \begin{equation} \boxed{\,\,{{\bar R}_t} \equiv {S_t}\frac{\beta }{\gamma } > 1\,\,} \end{equation}  これを時点$t$における実行再生産数と呼ぶ。回復人数を示す$R_t$と区別するために、$R$の上にバーを付けて再生産数$\bar{R}_t$としている。この意味について以下で議論する。その前に感染症...