Я нашел несколько дистрибутивов, для которых BUGS и R имеют разные параметризации: Normal, log-Normal и Weibull.
Для каждого из них я понимаю, что второй параметр, используемый R, необходимо преобразовать в обратном направлении (1 / параметр), прежде чем использовать в BUGS (или в моем случае JAGS).
Кто-нибудь знает исчерпывающий список этих преобразований, который существует в настоящее время?
Самое близкое, что я могу найти, - это сравнить распределения в таблице 7 руководства пользователя JAGS 2.2.0 с результатами ?rnorm
и т. Д. И, возможно, с несколькими вероятностными текстами. Этот подход, по-видимому, требует, чтобы преобразования были выведены из PDF-файлов отдельно.
Я бы предпочел избежать этой задачи (и возможных ошибок), если она уже была выполнена, или начать список здесь.
Обновить
Основываясь на предложениях Бена, я написал следующую функцию для преобразования кадра данных параметров из R в параметризацию 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)
источник
Ответы:
Я не знаю консервированного списка.
обновление : этот список (плюс дополнительная информация) теперь публикуется как Перевод функций плотности вероятности: с R на BUGS и обратно (2013), DS LeBauer, MC Dietze, BM Bolker R Journal 5 (1), 207-209.
Вот мой список (правки, предоставленные автором оригинала):
Бета, Пуассон, Экспонента, Униформа - все одно и то же
Отрицательный бином в BUGS имеет только дискретную параметризацию (size, prob), а не «экологическую» (size, mu, где size может быть нецелочисленной) параметризацию.
редактирование : Вейбулл в BUGS - это ( = , = ), в R - ( = , = ) [математическая запись соответствует записи, используемой в соответствующей документации] Как указано в разделе Как мне параметризовать Распределение Вейбулла в JAGS / BUGS? ,ν λ a б λ = ( 1 / b )a
shape
lambda
shape
scale
ГАММА в ЖУКАХ есть (
shape
,rate
). Это значение по умолчанию в R, но R также позволяет (shape, scale) [если аргумент масштаба назван]; скорость = 1 / шкалаПорядок имеет значение , особенно в BUGS (у которого нет именованных аргументов), например, R
dbinom(x,size,prob)
vs BUGSdbin(p,n)
[те же параметры, противоположный порядок].Названия отличий :
dbinom
, BUGS =dbin
dchisq
, ошибки =dchisqr
dweibull
, BUGS =dweib
dnbinom
, BUGS =dnegbin
редактировать : для усеченных дистрибутивов
I()
, которые использует BUGS , JAGS используетdinterval()
[стоит посмотреть в документации JAGS, если вы собираетесь использовать это, могут быть другие тонкие различия]источник
dinterval
дистрибутив, в котором BUGS работает с I ().