Ich habe einige Distributionen gefunden, für die BUGS und R unterschiedliche Parametrisierungen haben: Normal, log-Normal und Weibull.
Für jeden von diesen erfahre ich, dass der zweite von R verwendete Parameter invers transformiert werden muss (1 / parameter), bevor er in BUGS (oder in meinem Fall JAGS) verwendet wird.
Kennt jemand eine umfassende Liste dieser Transformationen, die derzeit existiert?
Am ehesten kann ich die Verteilungen in Tabelle 7 des JAGS 2.2.0-Benutzerhandbuchs mit den Ergebnissen von ?rnorm
usw. und möglicherweise einigen Wahrscheinlichkeitstexten vergleichen. Dieser Ansatz erfordert anscheinend, dass die Transformationen separat von den PDFs abgeleitet werden müssen.
Ich würde es vorziehen, diese Aufgabe (und mögliche Fehler) zu vermeiden, wenn sie bereits ausgeführt wurde, oder die Liste hier zu starten.
Aktualisieren
Auf der Grundlage von Bens Vorschlägen habe ich die folgende Funktion geschrieben, um einen Datenrahmen von Parametern von R- in BUGS-Parametrisierungen umzuwandeln.
##' 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)