先日、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用のかなり便利なライブラリがあるようなので、これも何か活用したい。


  1. 統計局ホームページ/平成27年国勢調査/調査の結果 ↩︎

  2. 「東京都の人口(推計)」の概要-令和2年1月1日現在|東京都 ↩︎

  3. 茨城県の人口と世帯(推計)-令和2年(2020年)1月1日現在-/茨城県 ↩︎

  4. 栃木県/人口・面積 ↩︎

  5. 群馬県 - 群馬県の将来推計人口について ↩︎

  6. 埼玉県推計人口 - 埼玉県 ↩︎

  7. 市区町村別人口と世帯(最新)/千葉県 ↩︎

  8. 神奈川県の人口と世帯 - 神奈川県ホームページ ↩︎

  9. Python ではプライベートメソッドはオーバーライドできない – PIXELA Developers Blog ↩︎