He encontrado algunas distribuciones para las cuales BUGS y R tienen diferentes parametrizaciones: Normal, log-Normal y Weibull.
Para cada uno de estos, deduzco que el segundo parámetro utilizado por R debe transformarse inversamente (1 / parámetro) antes de usarse en BUGS (o JAGS en mi caso).
¿Alguien sabe de una lista completa de estas transformaciones que existe actualmente?
Lo más cercano que puedo encontrar sería comparar las distribuciones en la tabla 7 del manual de usuario de JAGS 2.2.0 con los resultados de ?rnorm
etc. y quizás algunos textos de probabilidad. Este enfoque parece requerir que las transformaciones deban deducirse de los archivos PDF por separado.
Preferiría evitar esta tarea (y posibles errores) si ya se ha hecho, o comenzar la lista aquí.
Actualizar
Basado en las sugerencias de Ben, he escrito la siguiente función para transformar un marco de datos de parámetros de R a BUGS parametrizaciones.
##' 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)