Для каких распределений параметры параметризации в BUGS и R различны?


31

Я нашел несколько дистрибутивов, для которых 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)

2
На самом деле это не ответ, но я нашел этот шпаргалку полезной, некоторые полезные распределения в байесовском анализе с моделями из образовательных измерений (RJ Mislevy, 2001) - он в основном охватывает распределения BUGS.
ЧЛ

Ответы:


36

Я не знаю консервированного списка.

обновление : этот список (плюс дополнительная информация) теперь публикуется как Перевод функций плотности вероятности: с R на BUGS и обратно (2013), DS LeBauer, MC Dietze, BM Bolker R Journal 5 (1), 207-209.

Вот мой список (правки, предоставленные автором оригинала):

τσσ2τзнак равно1/σ2знак равно1/вар

Бета, Пуассон, Экспонента, Униформа - все одно и то же

Отрицательный бином в BUGS имеет только дискретную параметризацию (size, prob), а не «экологическую» (size, mu, где size может быть нецелочисленной) параметризацию.

редактирование : Вейбулл в BUGS - это ( = , = ), в R - ( = , = ) [математическая запись соответствует записи, используемой в соответствующей документации] Как указано в разделе Как мне параметризовать Распределение Вейбулла в JAGS / BUGS? ,νshapeλlambdaashapeбscaleλзнак равно(1/б)a

ГАММА в ЖУКАХ есть ( shape, rate). Это значение по умолчанию в R, но R также позволяет (shape, scale) [если аргумент масштаба назван]; скорость = 1 / шкала

Порядок имеет значение , особенно в BUGS (у которого нет именованных аргументов), например, R dbinom(x,size,prob)vs BUGS dbin(p,n)[те же параметры, противоположный порядок].

Названия отличий :

  • Бином : R = dbinom, BUGS =dbin
  • Хи-квадрат : R = dchisq, ошибки =dchisqr
  • Вейбулл : R = dweibull, BUGS =dweib
  • Отрицательный бином : R = dnbinom, BUGS =dnegbin

редактировать : для усеченных дистрибутивов I(), которые использует BUGS , JAGS использует dinterval()[стоит посмотреть в документации JAGS, если вы собираетесь использовать это, могут быть другие тонкие различия]


Отличный ответ - спасибо. Это сэкономит мне много сил, времени и, что самое важное, от потенциальных ошибок.
Дэвид Лебауэр

1
Не забывайте о различиях в том, как BUGS и JAGS работают с усечением, цензурой и предварительным упорядочением этих дистрибутивов (раздел 8 руководства). В частности, JAGS имеет dintervalдистрибутив, в котором BUGS работает с I ().
конъюнктура
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.