全国規模の感染シミュレーションと結果の可視化をしてみる

先日、都道府県間通勤・通学を考慮した感染症流行のシミュレーションを行った。 この時は関東のみのシミュレーションだったが、今回は全国規模の感染シミュレーションを実施してみる。 なお、この記事ではモデルに関する説明は特に記載しないため、モデルの詳細は以下過去の記事を参照していただきたい。 感染症数理モデルについて触りの部分だけ学ぶ | kouya17.com 都道府県間通勤・通学を考慮したパンデミックシミュレーションもどき | kouya17.com ※本シミュレーションや上記リンク先のシミュレーションは、実測値等には全く基づいていないため、完全に空想上のシミュレーションになります。 本シミュレーションの結果が実情を反映していたり、今後の予測を示していたりはしません。 利用するデータ シミュレーションを全国規模に拡張するには各都道府県の人口のデータと、各都道府県間の通勤・通学者人数のデータが必要になる。 これらのデータは総務省統計局「平成27年国勢調査結果」1を利用した。 パラメータ、初期状態について SEIRモデルに置ける各パラメータは今回以下のように設定する。 基本再生産数 \(R_0\) : 2.0 平均潜伏期間 \(l\) : 5日 平均発症期間 \(i\) : 14日 初期状態はAM0時に、東京都に1人の感染者がいる状態とする。 今回は都道府県間通勤・通学について 通勤・通学者なし 通勤・通学者あり、通勤・通学者数は特に加工しない 通勤・通学者あり、通勤・通学者数は元データの20%にする 通勤・通学者あり、通勤・通学者数は元データの0.01%にする の4パターン、計算を実施して、通勤・通学者数が与える影響を調べてみる。 また、前回のシミュレーションでは休日の概念を設けていなかった。 働きっぱなしは可哀想なので、土日は休みにし、通勤・通学はしないものとする。 ただし、祝日や土日以外の長期休暇は考慮しない。 結果及び可視化 今回はデータが少し多くなってくるので、可視化の方法も工夫する必要がある。 japanmapという、日本地図を都道府県別に色分けできるライブラリがあるようなので、これを利用させていただく。 発症者比率の可視化 各都道府県について、人口に占める発症者の比率(\(\frac{I}{S+E+I+R}\))を可視化する。 発症者の比率を赤色の濃淡で表したアニメーションを以下に示す。 通勤・通学者なしの場合 都道府県の人の移動が発生しないため、東京でしか流行しない。 通勤・通学者ありの場合 日本全国に感染が広がる。 ただし、感染のピークは東京から遠い都道府県ほど遅くなる。 通勤・通学者あり、ただし人数20%の場合 人数を絞る前の結果とほぼ変わらないように見える。 通勤・通学者あり、ただし人数0.01%の場合 人数を思いっきり絞ってみると、人数を絞る前と比べて感染が広がるスピードが遅いように見える。 1000日目時点での累計感染者数の可視化 それぞれの条件で1000日目時点での累計感染者数(\(E+I+R\))をグラフ化する。 横軸を各都道府県、縦軸を累計感染者数にした棒グラフを以下に示す。 通勤・通学における各条件の結果をそれぞれ色を変えて並べている。 累計感染者数に関しては、通勤・通学者数を絞っても変化はない。 ソースコード 今回使用したコードは以下に置いてある。 ただし、全然整理できていない…。 統計局ホームページ/平成27年国勢調査/調査の結果 ↩︎

May 20, 2020 · 1 min

都道府県間通勤・通学を考慮したパンデミックシミュレーションもどき

先日、SEIRモデルを用いた感染症流行のシミュレーションを行った。 このプログラムを少し拡張して、都道府県間通勤・通学を考慮したパンデミックシミュレーションもどきを行う。 ※本シミュレーションや上記リンク先のシミュレーションは、実測値等には全く基づいていないため、完全に空想上のシミュレーションになります。 本シミュレーションの結果が実情を反映していたり、今後の予測を示していたりはしません。 都道府県間通勤・通学をシミュレーションに組み込む 都道府県間通勤・通学の影響をシミュレーションに組み込むため、総務省統計局「平成27年国勢調査結果」1を参考にする。 今回は東京都・群馬県・栃木県・茨城県・埼玉県・千葉県・神奈川県間の自宅外就業者数及び通学者数データを扱う。 モデルへの組み込み方としては、移動用のグループを形成し、移動用のグループは移動先のデータと感染率を共有するという方法を採る。 なお、今回はシミュレーション内時刻が8:00の時に通勤・通学者が一斉に(移動時間0で)移動し、シミュレーション内時刻が17:00の時に通勤・通学者が一斉に(移動時間0で)帰宅すると仮定する。 東京都と千葉県間の人口移動を例にして説明する。 まず、初期状態として以下のような状態になっているとする。 値はすべて適当だが、東京都に10人感染者(\(I\))がいるとする。 この後、時間を進行させる。 シミュレーション内の時刻が8:00になった時、人口移動用のグループを分割する。 移動用グループの総人数は総務省統計局「平成27年国勢調査結果」1における自宅外就業者数及び通学者数に従う。 \(S:E:I:R\)比は移動元の都道府県データの比と等しくする。 ここで、移動用グループは移動先の都道府県のデータと、感染率\(\frac{R_0I}{iN}\)を共有する。 感染率を共有させた状態で、時間を進行させる。 なお、感染率を共有する関係で、非感染者から潜伏感染者への遷移に関する項については時間刻みに対して1次精度になってしまう。 シミュレーション内の時刻が17:00になった時、人口移動用のグループを移動元のデータに合流させる。 上の図中の値もすべて適当だが、以上のような形で、都道府県間の感染伝播をシミュレートする。 計算する 人口データについて 人口データは各自治体のページを参考に、以下の値を使う。 都道府県 人口[人] 備考 東京都 13951635 2020年1月1日時点推計2 茨城県 2866325 2020年1月1日時点推計3 栃木県 1942313 2019年10月1日時点推計4 群馬県 1938053 2019年10月1日時点推計5 埼玉県 7341794 2020年4月1日時点推計6 千葉県 6280344 2020年4月1日時点推計7 神奈川県 9204965 2020年4月1日時点推計8 各都道府県毎の通勤・通学による流入・流出人口は総務省統計局「平成27年国勢調査結果」1より、以下の値(単位は[人])を使う。縦が流出元で横が流出先。...

May 5, 2020 · 1 min

感染症数理モデルについて触りの部分だけ学ぶ

目的 特にしっかりした目的はない。 なんとなく数値シミュレーションについて学び直したくなったため、現在身近にある現象を題材にして学ぶ。 ネットの情報を参考に、適当にシミュレーションを走らせてみる。 ※本シミュレーションは、実測値等には全く基づいていないため、完全に空想上のシミュレーションになります。 本シミュレーションの結果が実情を反映していたり、今後の予測を示していたりはしません。 今回扱うシミュレーションモデル SEIRモデルを扱う。 SEIRモデルとは SEIRモデル(エスイーアイアールモデル)とは感染症流行の数理モデルである。 モデルは 感染症に対して免疫を持たない者(Susceptible) 感染症が潜伏期間中の者(Exposed) 発症者(Infectious) 感染症から回復し免疫を獲得した者(Recovered) から構成され、その頭文字をとってSEIRモデルと呼ばれる。 (Wikipediaより) モデル式は以下のような式で表される。 $$ \begin{aligned} \frac{dS}{dt} &= m(N - S) - bSI &(1) \cr \frac{dE}{dt} &= bSI - (m + a)E &(2) \cr \frac{dI}{dt} &= aE - (m + g)I &(3) \cr \frac{dR}{dt} &= gI - mR &(4) \end{aligned} $$ ここで\(t\)は時間、\(m\)は出生率及び死亡率、\(a\)は感染症の発生率、\(b\)は感染症への感染率、\(g\)は感染症からの回復率を表す。 また\(N\)は全人口を示し、 $$N \equiv S + E + I + R (5)$$...

May 2, 2020 · 2 min