Saya telah menemukan beberapa distribusi yang BUGS dan R memiliki parameterisasi berbeda: Normal, log-Normal, dan Weibull.
Untuk masing-masing ini, saya mengumpulkan bahwa parameter kedua yang digunakan oleh R perlu diubah terbalik (1 / parameter) sebelum digunakan dalam BUGS (atau JAGS dalam kasus saya).
Adakah yang tahu daftar lengkap transformasi yang saat ini ada?
Yang paling dekat yang dapat saya temukan adalah membandingkan distribusi dalam tabel 7 dari manual pengguna JAGS 2.2.0 dengan hasil ?rnorm
dll. Dan mungkin beberapa kemungkinan teks. Pendekatan ini tampaknya mensyaratkan bahwa transformasi perlu disimpulkan dari pdf secara terpisah.
Saya lebih suka menghindari tugas ini (dan kemungkinan kesalahan) jika sudah dilakukan, atau mulai daftar di sini.
Memperbarui
Berdasarkan saran Ben, saya telah menulis fungsi berikut untuk mengubah kerangka data dari parameter dari parameterisasi ke BUGS.
##' convert R parameterizations to BUGS paramaterizations
##'
##' R and BUGS have different parameterizations for some distributions.
##' This function transforms the distributions from R defaults to BUGS
##' defaults. BUGS is an implementation of the BUGS language, and these
##' transformations are expected to work for bugs.
##' @param priors data.frame with colnames c('distn', 'parama', 'paramb')
##' @return priors with jags parameterizations
##' @author David LeBauer
r2bugs.distributions <- function(priors) {
norm <- priors$distn %in% 'norm'
lnorm <- priors$distn %in% 'lnorm'
weib <- priors$distn %in% 'weibull'
bin <- priors$distn %in% 'binom'
## Convert sd to precision for norm & lnorm
priors$paramb[norm | lnorm] <- 1/priors$paramb[norm | lnorm]^2
## Convert R parameter b to JAGS parameter lambda by l = (1/b)^a
priors$paramb[weib] <- 1 / priors$paramb[weib]^priors$parama[weib]
## Reverse parameter order for binomial
priors[bin, c('parama', 'paramb')] <- priors[bin, c('parama', 'paramb')]
## Translate distribution names
priors$distn <- gsub('weibull', 'weib',
gsub('binom', 'bin',
gsub('chisq', 'chisqr',
gsub('nbinom', 'negbin',
as.vector(priors$distn)))))
return(priors)
}
##' @examples
##' priors <- data.frame(distn = c('weibull', 'lnorm', 'norm', 'gamma'),
##' parama = c(1, 1, 1, 1),
##' paramb = c(2, 2, 2, 2))
##' r2bugs.distributions(priors)