Ho trovato alcune distribuzioni per le quali BUGS e R hanno parametrizzazioni diverse: normale, log-normale e Weibull.
Per ognuno di questi, ho capito che il secondo parametro utilizzato da R deve essere trasformato inverso (1 / parametro) prima di essere utilizzato in BUGS (o JAGS nel mio caso).
Qualcuno sa di un elenco completo di queste trasformazioni che attualmente esiste?
Il più vicino che posso trovare sarebbe confrontare le distribuzioni nella tabella 7 del manuale utente JAGS 2.2.0 con i risultati di ?rnorm
ecc. E forse alcuni testi probabilistici. Questo approccio sembra richiedere che le trasformazioni debbano essere dedotte separatamente dai pdf.
Preferirei evitare questo compito (e possibili errori) se è già stato fatto, oppure avviare l'elenco qui.
Aggiornare
Sulla base dei suggerimenti di Ben, ho scritto la seguente funzione per trasformare un dataframe di parametri da R a parametri di 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)