J'ai trouvé quelques distributions pour lesquelles BUGS et R ont des paramétrisations différentes: Normal, log-Normal et Weibull.
Pour chacun d'eux, je suppose que le deuxième paramètre utilisé par R doit être transformé inversement (1 / paramètre) avant d'être utilisé dans BUGS (ou JAGS dans mon cas).
Quelqu'un connaît-il une liste complète de ces transformations qui existe actuellement?
Le plus proche que je puisse trouver serait de comparer les distributions du tableau 7 du manuel d'utilisation de JAGS 2.2.0 avec les résultats de ?rnorm
etc. et peut-être quelques textes de probabilité. Cette approche semble nécessiter que les transformations devront être déduites des pdfs séparément.
Je préférerais éviter cette tâche (et d'éventuelles erreurs) si cela a déjà été fait, sinon commencer la liste ici.
Mise à jour
Sur la base des suggestions de Ben, j'ai écrit la fonction suivante pour transformer une trame de données de paramètres de R en paramétrisation 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)
la source
Réponses:
Je ne connais pas de liste en conserve.
mise à jour : cette liste (ainsi que des informations supplémentaires) est maintenant publiée sous Translating Probability Density Functions: From R to BUGS and Back Again (2013), DS LeBauer, MC Dietze, BM Bolker R Journal 5 (1), 207-209.
Voici ma liste (modifications fournies par l'interrogateur d'origine):
Beta, Poisson, Exponential, Uniform sont tous les mêmes
Le binôme négatif dans BUGS n'a que le paramétrage discret (taille, prob), pas le paramétrage "écologique" (taille, mu, où la taille peut être non entière).
shape
lambda
shape
scale
Gamma dans BUGS est (
shape
,rate
). C'est la valeur par défaut dans R, mais R permet également (forme, échelle) [si l'argument d'échelle est nommé]; taux = 1 / échelleL'ordre est important , en particulier dans BUGS (qui n'a pas d'arguments nommés), par exemple R
dbinom(x,size,prob)
vs BUGSdbin(p,n)
[mêmes paramètres, ordre opposé].Différences de nom :
dbinom
, BUGS =dbin
dchisq
, BUGS =dchisqr
dweibull
, BUGS =dweib
dnbinom
, BUGS =dnegbin
modifier : pour les distributions tronquées BUGS utilisations
I()
, Jags utilisationsdinterval()
[il vaut la peine de regarder dans la documentation JAGS si vous allez l' utiliser, il peut y avoir d' autres différences subtiles]la source
dinterval
distribution, où BUGS travaille avec I ().