先日、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より、以下の値(単位は[人])を使う。縦が流出元で横が流出先。
ただし、自分自身への人口移動は今回の結果に影響を与えないため、考慮しない。
東京都 | 茨城県 | 栃木県 | 群馬県 | 埼玉県 | 千葉県 | 神奈川県 | |
---|---|---|---|---|---|---|---|
東京都 | - | 7619 | 2770 | 2251 | 140961 | 82706 | 238314 |
茨城県 | 67284 | - | 22098 | 1166 | 17807 | 41734 | 3748 |
栃木県 | 17301 | 18175 | - | 23503 | 12067 | 1197 | 1772 |
群馬県 | 13614 | 1075 | 16561 | - | 27904 | 895 | 1518 |
埼玉県 | 936105 | 14437 | 10049 | 29250 | - | 43074 | 28111 |
千葉県 | 716882 | 35427 | 1145 | 791 | 41668 | - | 25966 |
神奈川県 | 1068513 | 2688 | 1433 | 1151 | 14035 | 14932 | - |
「平成27年国勢調査結果」(総務省統計局)(https://www.stat.go.jp/data/kokusei/2015/kekka.html)を加工して作成
また、今回は通勤・通学による都道府県間通勤の人の移動がないパターンとあるパターンで2通り計算を行う。
パラメータ、初期状態について
感染に関する各パラメータは今回以下のように設定する。
基本再生産数 \(R_0\) : 2.0
平均潜伏期間 \(l\) : 5日
平均発症期間 \(i\) : 14日
また、AM0時に、東京都に1人の感染者がいる状態を初期状態とする。
プログラム
前回使ったプログラムを改修した。
今回用いたプログラムは以下に置いてある。
結果
通勤・通学による都道府県間の人の移動がないパターン
都道府県間を移動する人数を0に設定した場合、以下のような結果になった。
東京都以外は感染者が発生しない。
まあ、感染する要素がないので、そうなる。
通勤・通学による都道府県間の人の移動があるパターン
都道府県間の人の移動を考慮した場合、以下のような結果になった。
東京都以外も東京都と同様に感染が広がる。
感染の進行具合に違いが見られるかなと思っていたが、一目で分かるような違いはなかった。
雑記
今回はめんどくさそうなところは極力考えないことにして、感染シミュレーションモデルもどきを拡張した。
なかなかしんどかったが、python
のよい勉強になった。
python
ではプライベートメソッドはオーバーライドできない9ということも今回の取り組みを通して学べた。
japanmapという、日本地図を県別に色分けできるpython
用のかなり便利なライブラリがあるようなので、これも何か活用したい。