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)
こうしたら、動いた。