2014年度マイコースプログラム

4回生K.K. @統計遺伝学分野

9月12日(金)午後

リード・フロストモデル 拡張版

いまちょうどデング熱が流行っているということで、蚊によって媒介される病気のモデルをつくってシミュレーションしてみた。
(完全に「やってみた」だけなので、だからどうということはないのだが…。)

仮定として、

(1)集団内の人々と蚊は感染・未感染を問わずランダムにまじりあう。
(2)感染者と未感染蚊、感染蚊と未感染者が接触して伝播する一定の確率がそれぞれに存在する。
(3)一度感染した人はもう感染しない。
(4)一度感染した蚊は治癒しない。ただし、一定の割合で死んで新しい未感染蚊と入れ替わる。
(5)その集団は他の集団から隔離されている。

式は

{M.C_{t+1}=(1-r)M.C_{t}+M.S_{t}(1-(1-p)^{C_t})}

{C_{t+1}=S_t(1-(1-q)^{M.C_{t+1}})}

(Ct:時刻tにおける感染者数、St:時刻tにおける未感染者、M.Ct:時刻tにおける感染蚊数、M.St:時刻tにおける未感染蚊数、p:ある1人の感染者が1世代時間にある1匹の未感染蚊に感染を伝播する確率、q:ある1匹の感染蚊が1世代時間にある1人の未感染者に感染を伝播する確率、r:蚊が1世代時間に入れ替わる割合)

とした。

N <- 100
n <- 10
p <- 0.05
q <- 0.05
r <- 0.2
a <- c(1,N-1,n-10,10)
l <- 30

mat <-function(t){
x <- matrix(nrow=t,ncol=4)
x[1,] <- a
for (i in 1:(t-1)){
x[i+1,3] <- (1-r)*x[i,3]+x[i,4]*(1-(1-p)^x[i,1])
x[i+1,1] <- x[i,2]*(1-(1-q)^x[i+1,3])
x[i+1,2] <- N-sum(x[1:i+1,1])
x[i+1,4] <- n-x[i+1,3]
} 
return(x)
}

x <- 0:l

plot(x,c(0,mat(l)[,1]),xlim=c(0,l),ylim=c(0,N),type="l", col=1,xlab="時間",ylab="人数")

par(new=T)
plot(x,c(N,mat(l)[,2]),xlim=c(0,l),ylim=c(0,N),ann=F,type="l", col=2)

par(new=T)
plot(x,c(0,N-mat(l)[,1]-mat(l)[,2]),xlim=c(0,l),ylim=c(0,N),ann=F,type="l", col=3)

par(new=T)
plot(x,c(0,mat(l)[,3]),xlim=c(0,l),ylim=c(0,N),ann=F,type="l", col=4)

全人数を100人、蚊を10匹、p=q=0.05,r=0.2としたときのグラフが下の通り。

f:id:kouri_don:20140912190622p:plain

他にもいろいろ描いてみて、だいたい予想した通りの結果になったので、満足した。

リード・フロストモデルは非現実的と言われているとはいえ、拡張もしやすいしよくできていると感じた。

来週からはいよいよバイアスとかの話に入る。
一応ここから先が一番興味があった部分だし、少しでも何か成果があればよいと思う。

以上