GUNMA GIS GEEK

群馬県の片隅でオープンデータとデータビジュアライゼーションとGIS(地理情報システム)に戯れるエンジニアのブログ

D3v4 Javascript

感染症の伝播と集団免疫効果を視覚化する。

投稿日:

先日、たまたま見つけて購入した「Nature in Code」に掲載されていた、感染症シミュレーション(SIRモデル)が面白そうだったので作成してみた。

simulator

demo

白いセルが感染可能者(感染する前の健康な人)、赤いセルが感染者、緑のセルが隔離者(死亡、もしくは快復して免疫を獲得した人)となる。

参考書のコードを少しカスタマイズして、感染率や隔離率を調整できるようにした。
感染率が高いと早く広範囲に感染が広がり、隔離率が高いと早く収束する。
数値は、「初期感染者」以外は、0〜1の値で割合を示す。例えば、感染率が1の場合、隣接する感染可能者は100%感染する。

初期免疫保持者率は、感染が広がる前に免疫を獲得している人(灰色)の割合。
初期免疫保持者が多いと、拡散せずに早期に収束する。(集団免疫効果)

SIR_ simulator2

このシミュレーターだと初期隔離者がランダムに配置されるため、集団免疫率は入力した数値より低くなる。
(1を入力しても100%にならない)

改良の余地が多いけど、数値をいろいろ調整して試してみると、なかなか楽しい。

サンプルコード

About Me

著者: 清水正行
所在地: 群馬県高崎市

群馬・東京間を行き来する出稼ぎエンジニア。GIS(地理情報システム)・データビジュアライゼーション・オープンデータなどについて書いてます。