<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)

こうしたら、動いた。