LoginSignup
4
1

More than 3 years have passed since last update.

OpenModelicaで感染症の数理モデル「SIRモデル」を実装する(規制、緩和を繰り返す例)

Last updated at Posted at 2020-05-12

基本のSIRモデルで接触率(感染率)を周期的に変化させる

既出記事、「OpenModelicaで感染症の数理モデル「SIRモデル」を実装する(死亡率、再感染率を反映する)」で作成したモデルで 再感染率を周期的に変化させ、規制状態と緩和状態を繰り返すとどのようなグラフになるかシミュレーションしてみます。

このモデルの前提条件
- 基本のSIRモデルとし、死亡率、再感染率は 0とする
- ワクチンは使用しない

なお、以下のシミュレーションは全て仮のパラメータでモデルの検証をしただけであり、実際の数値を反映・予想したものではないことをお断りしておきます。

モデルの変更点

cl_SIRbetaInput の β値入力に TimeTableで 15日おきに 100%、20%(80%減)を繰り返す設定にします。60日以降は100%のままとします。
β値の変化をグラフ上で見やすくするために gainを追加して、100, 20 に変換。

作成したモデル

30_SIR_timetable.png

シミュレーション結果

感染可能者、感染者、新規感染者、回復者をグラフで見る

30_SIR_timetable_graph.png

感染者、新規感染者のみのグラフ

感染者の推移だけを拡大して確認します。
基本のSIRモデルで接触率を100%、20%と周期的に変化させると感染初期には規制を緩和した途端に新規感染者数が増加し始め、再度規制すると減少していくことが確認できます。
また、時間が経過して(グラフの60日目以降)回復者(抗体獲得者)が50%を超えるくらいに増えれば、接触率が高まっても新規感染者数は漸減していくようです。
31_SIR_timetable_graph.png

緩和時でも接触率を50%減程度に管理した場合のグラフ

60日までは管理した効果で抑えられているように見えます。
ただし、そこから緩めてしまうと新規感染者が激増します。
抗体獲得者が一定数に満たないうちに緩和するといけないようです。
32_SIR_timetable_graph.png

関連記事

OpenModelicaで感染症の数理モデル「SIRモデル」を実装する
OpenModelicaで感染症の数理モデル「SIRモデル」を実装する(ワクチンの効果を見る)
OpenModelicaで感染症の数理モデル「SIRモデル」を実装する(死亡率、再感染率を反映する)
感染病の数学予測モデルの紹介 (SIRモデル)

OpenModelicaモデル

GitHub上で公開しました。
pk_SIRmodel.mo

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1