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)
quelle
Antworten:
Ich kenne keine Dosenliste.
Update : Diese Liste (plus zusätzliche Informationen) wird jetzt als Translating Probability Density Functions veröffentlicht: Von R zu BUGS und zurück (2013), DS LeBauer, MC Dietze, BM Bolker R Journal 5 (1), 207-209.
Hier ist meine Liste (Bearbeitungen vom ursprünglichen Fragesteller):
Beta, Poisson, Exponential, Uniform sind alle gleich
Negatives Binomial in BUGS hat nur die diskrete Parametrisierung (Größe, Wahrscheinlichkeit), nicht die "ökologische" (Größe, mu, wobei Größe nicht ganzzahlig sein kann) Parametrisierung.
shape
lambda
shape
scale
Gamma in BUGS ist (
shape
,rate
). Dies ist die Standardeinstellung in R, aber R erlaubt auch (Form, Skalierung) [wenn das Skalierungsargument benannt ist]; rate = 1 / scaleDie Reihenfolge ist wichtig , insbesondere bei BUGS (die keine Argumente benannt haben), z. B. R
dbinom(x,size,prob)
vs BUGSdbin(p,n)
[gleiche Parameter, umgekehrte Reihenfolge].Namensunterschiede :
dbinom
, BUGS =dbin
dchisq
, BUGS =dchisqr
dweibull
, BUGS =dweib
dnbinom
, BUGS =dnegbin
edit : für gekürzte Distributionen, die BUGS verwendet
I()
, verwendetdinterval()
JAGSquelle
dinterval
Distribution, in der BUGS mit I () zusammenarbeitet.