感染症流行はいつ終息するか?(SIRモデル)

 感染症の流行と終息のシミュレーションを行います。

要約

(1)問い

 感染症の流行はどのように終息するのでしょうか?

(2)結論

 免疫を獲得した回復者が一定ラインを超えると、流行は終息します。

(3)意義

 新型コロナウイルス感染症の議論の土台にもなっている基本モデルが理解できます。

前提

 問いを「ある感染症Xはどのような条件で終息するのでしょうか?」とします。

 この記事では以下の定義、仮定、事実を用います。

(1)定義

感受性者(S)

 Xにまだ感染していないが感染する可能性のある人を、感受性者(Susceptible)と定義します。人口に占める感受性者の割合を、Sとします。

感染者(I)

 Xに感染した人を、感染者(Infected)と定義します。人口に占める感染者の割合を、Iとします。

回復者(R)

 Xに感染したものの回復した人を、回復者(Recovered)と定義します。人口に占める回復者の割合を、Rとします。

基本再生産数

 一人を除き全員が未感染感な状況下で、一人の感染者が生み出す二次感染者の平均値を、基本再生産数と定義します。これは感染症の感染力を測る上で重要な数値です。

 1を超えると大規模な流行になるとされます。

(2)仮定する条件

すべての人がXに感染しうる

 すべての人がXに感染しうると、仮定します。このとき

$$S+I+R=1$$

と表せます。

新規感染について

 Xの感染について次を仮定します。

  • 感受性者と感染者の接触で、感染が広がる
  • 感受性者と感染者の接触頻度は、両者の密度の積に比例する
  • 感染の確率は、接触頻度に比例する

 このとき、次のように

$$新規感染者の増加=\alpha S_t I_t$$

$$S_t I_t:t期のSとIの密度の積、\alpha:感染率$$

と表せます。

回復について

 Xからの回復について次を仮定します。

  • 感染者は、毎期一定確率で回復する(回復率)

 このとき、次のように

$$回復者の増加=\beta I_t$$

$$\beta:回復率$$

表せます。

病原体について

 感染症Xの病原体は変異しないと仮定します。つまり、

$$\alpha:感染率、\beta:回復率$$

は時間を通じて一定です。また、

  • 回復者は生涯にわたる免疫を獲得し、再び感染はしない

を仮定します。

政府や国民について

 政府や国民は流行がどのステージにあっても、政策や行動を変えないことを仮定します。

SIRモデル

 以上をまとめると、つぎのようなモデルになります。これはSIRモデルと呼ばれます。

$$全人口:S+I+R=1$$

$$感受者Sの増加:\it{\Delta}S=-\alpha S_t I_t $$

$$感染者Iの増加:\it{\Delta}I=\alpha S_t I_t- \beta I_t$$

$$回復者Rの増加:\it{\Delta} R=\beta I_t $$

$$ただし、\it{\Delta}S=S_{t+1}-S_{t}$$

基本再生産数とSIRモデル

 なお、一人を除き全員が未感染感な状況下で、一人の感染者が生み出す二次感染者の平均値である「基本再生産数」は、SIRモデルでは

$$基本再生産数=\frac{\alpha}{\beta}$$

となることが知られています。

方法

(1)着眼点

 SIRモデルにおける感受性者、感染者、回復者の割合の推移に注目して、問い「ある感染症Xはどのように流行し、収束するのでしょうか?」に迫ることにします。

(2)方針

 Rにてシミュレーションを行います。

結果

(1)セッティング

 次の状況を考えます。

  • 人口は1億2000万人
  • 全員が免疫なし(R初期値=0)
  • 初日は1人のみ感染(I初期値=1/120000000)
  • 人に感染させる可能性のある平均期間は10日(β=0.1)
  • 基本再生産数は3(α/β=3より、α=0.3)

 つまり、感染症Xが、新型コロナ・ウイルス感染症と似ている場合です。新型コロナ・ウイルス感染症は、初期状態には免疫を持っている人はおらず、感染させる可能性のある期間は10日、基本再生産数は2〜5と言われます。

(2)シミュレーション

 これをSIRモデルに基づき、シミュレーションすると、次の結果となりました。

 大規模な感染流行(パンデミック)となりました。

 最も流行していた100日目ごろは、人口の3分の1近くが感染症Xに苦しんでいます。また、感染が沈静化した200日目には、回復者が9割を超えています。最初はたった一人の感染者でしたので、驚くべき結果です。

考察

(1)結論

 未感染者と感染者が多いと、流行は拡大します。免疫を獲得した回復者が多くなると、流行は終息します。

(2)前提評価

 今回は

  • 病原体が変異しない
  • ワクチンの大規模接種は行われない
  • 三密の回避は行われない
  • マスク着用率の上昇は起きない
  • 外出自粛もなされない
  • 医療逼迫が起きても、回復率は変わらない

といったことを暗黙のうちに仮定していました。これは現実とは異なります。

(3)意義

 感染症のシミュレーションとして必須

  • 感受性者
  • 感染者
  • 回復者

の数値を具体的に計算できる点で優れており、議論の基本になります。

 実際に、新型コロナ・ウイルス感染症の分析において、SIRモデルの発展系が使われています。

付録1:免疫保持者が95%の場合

次の状況を考えます。

  • 人口は1億2000万人
  • 95%が免疫を持つ(R初期値=0.95)
  • 初日は1000人が感染(I初期値=1000/120000000)
  • 人に感染させる可能性のある平均期間は5日(β=0.2)
  • 基本再生産数は20(α/β=20より、α=4)

 つまり、感染症Xが、麻疹と似ている場合です。麻疹は、抗体保有率が95%、感染させる可能性のある期間は5日、基本再生産数は16〜21と言われます。

 これをSIRモデルに基づき、シミュレーションすると、次の結果となりました。

 感染症Xは全く流行しませんでした。基本再生産数が20と非常に高いですが、免疫保有者が95%であったので広まらなかったのです。

付録2:Rコード

 シミュレーションは、R言語を用いて行いました。R言語については「しまうまのRでデータ分析入門」をご覧ください。

 美しい図示のため、パッケージとしてggplot2を用いました。

#パッケージの呼び出し。未インストールならインストール!
library(ggplot2) 

 シミュレーション↓

a <- 0.3 #α
b <- 0.1 #β
T <- 3000 #期間
c <- 1   #初期感染者数
N <- 120000000 #人口
 
#初期値
S0_1 <- 1-c/N
I0_1 <- c/N
R0_1 <- 0
 
#行列
data0<-  data.frame(matrix(0,T,7))
colnames(data0) <- c("time","S","I","R")
data0[1,"S"] <- S0_1
data0[1,"I"] <- I0_1
data0[1,"R"] <- R0_1
 
#シミュレーション
for(t in 1:(T-1) ){
  time <- data0[t, "time"]
  St <- data0[t,"S"]
  It <- data0[t,"I"]
  Rt <- data0[t,"R"]  
  
  data0[t+1,"time"] <- time + 1
   
  data0[t+1,"S"] <- St -a * St * It
  data0[t+1,"I"] <- It + a * St * It  - b * It
  data0[t+1,"R"] <- Rt + b * It
}
 
#作図
ggplot(data0)+
  geom_line(aes(x = time, y = S),col="black")+
  geom_line(aes(x = time, y = I),col="red")+
  geom_line(aes(x = time, y = R),col="blue")+
  xlab("日数") + 
  ylab ("人口割合") +
  scale_x_continuous(limits = c(0, 300))+ #予測する期間を0から5000
  ggtitle ("SIRモデル 黒が感受性者 赤が感染者 青が回復者") +
  theme_grey(base_family = "HiraKakuPro-W3")

※サムネイル画像出典:Unsplash

コメント欄 お気軽にコメントをお寄せください!

タイトルとURLをコピーしました