# Cadralazine 4 (lognormal likelihood, multivariate t second stage) ; model { # N = total number of observations ; # n = number of patients ; # data transformation ; for (i in 1:N) { lnconc[i] <- log(conc[i] + eps) ; # This 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]) ; for (j in 1:2) { for (k in 1:2) { tauindiv[i,j,k] <- lambda[i] * tau[j,k] / 10 ; #tauindiv[10* (i - 1) + 2 * (j - 1) + k] <- lambda[i] * tau[j,k] / 10 ; # can't then treat as tauindiv[i,1:2, 1:2] } } # tauindiv[i,1:2,1:2] <- lambda[i] * tau[1:2,1:2] / 10 ; # error message that left hand side must be scalar; alpha[i,1:2] ~ dmnorm(eta[1:2], tauindiv[i,1:2, 1:2] ) lambda[i] ~ dgamma( 5.0, 0.5) } # 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) }