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) dweib(\nu,\lambda)=\nu\lambda x^{\nu-1}\exp\left(-\lambda x^{\nu}\right) \lambda = \left(\frac{1}{\eta}\right)^{\mu}, \nu=m \eta = \left(\frac{1}{\lambda}\right)^{1/\nu}, m=\nu まず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) こうしたら、動いた。