<jsmath> dweibull(x,m,\eta)=\left(\frac{m}{\eta}\right)\left(\frac{x}{\eta}\right)^{m-1}\exp\left(-\left(\frac{x}{\eta}\right)^{m}\right) </jsmath>
<jsmath> dweib(\nu,\lambda)=\nu\lambda x^{\nu-1}\exp\left(-\lambda x^{\nu}\right) </jsmath>
<jsmath> \lambda = \left(\frac{1}{\eta}\right)^{\mu}, \nu=m </jsmath>
<jsmath> \eta = \left(\frac{1}{\lambda}\right)^{1/\nu}, m=\nu </jsmath>
まずWinBUGSのdweib()の通り、nuとlambdaに事前分布を置くには、次のようなコードを用いる。
model{ for ( i in 1:n ) { t[i] ~ dweib(nu, lambda)I(tcen[i],) } nu ~ dgamma(100,0.1) lambda ~ dgamma(100,0.1) m <- nu eta <- pow(lambda,-1/nu) } list(n=20, t=c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA), tcen=c(50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50)) list(nu=5,lambda=10)
次のコードでは、mとetaに事前分布を置いている。
model{ for ( i in 1:n ) { t[i] ~ dweib(nu, lambda)I(tcen[i],) } nu ~ dgamma(10,0.1) eta ~ dgamma(100,0.1) lambda <- 1/pow(eta, m) nu <- m } list(n=20, t=c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA), tcen=c(50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50)) list(mu=1,eta=10)
後者は、WinBUGSにとって良い表記ではないのか、動かずにエラーになる。
model{ for ( i in 1:n ) { t[i] ~ dweib(nu, lambda)I(tcen[i],) } nu ~ dgamma(10,0.1) ieta ~ dgamma(100,0.1) eta <- 1/ieta lambda <- 1/pow(eta, m) m <- nu } list(n=20, t=c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA), tcen=c(50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50)) list(nu=1,ieta=0.1)
こうしたら、動いた。