# Cadralazine 2 (lognormal likelihood) ; model { # N = total number of observations ; # n = number of patients ; # data transformation ; for (i in 1:N) { lnconc[i] <- log(conc[i] + eps) ; # Adding eps prevents a trap because of 0-valed concs ; } # likelihood ; for (i in 1:N) { mu[i] <- log(dose[i]) - ke[subj[i]] * time[i] - alpha[subj[i],1] lnconc[i] ~ dnorm(mu[i], tauC) } # transformations of individual parameters and # second stage of model ; for (i in 1:n) { V[i] <- exp(alpha[i,1]) ; ke[i] <- exp(alpha[i,2]) ; alpha[i,1:2] ~ dmnorm(eta[1:2], tau[1:2, 1:2]) } # transformations of population parameters priors ; eta[1:2] ~ dmnorm(mean[1:2], prec[1:2, 1:2]) tau[1:2, 1:2] ~ dwish(R[1:2, 1:2], 2) Vpop <- exp(eta[1]) ; kepop <- exp(eta[2]) ; for (i in 1:2) { sigma[i] <- sqrt(inverse(tau[1:2, 1:2], i, i)) } tauC ~ dgamma(1.0E-3, 1.0E-3) sigmaC <- 1 / sqrt(tauC) } data list(N = 64, n = 10, mean = c(0, 0), eps = 0.000001, R = structure(.Data = c(0.1, 0, 0, 0.1), .Dim = c(2,2)), prec = structure(.Data = c(1.0E-6, 0, 0, 1.0E-6), .Dim = c(2,2))) inits list(eta = c(0,0), tauC = 2.0, tau = structure(.Data = c(0.1, 0.0, 0.0, 0.1), .Dim = c(2,2)) ) list(eta = c(2.5, -2.5), tauC = 1.0, tau = structure(.Data = c(25.0, 5.0, 5.0, 25.0), .Dim = c(2,2)) ) list(eta = c(-2.5, 2.5), tauC = 0.5, tau = structure(.Data = c(1,0,0,1), .Dim = c(2,2)) )