ฉันได้พบการแจกแจงบางอย่างซึ่ง BUGS และ R มีพารามิเตอร์ต่างกัน: Normal, log-Normal และ Weibull
สำหรับแต่ละสิ่งเหล่านี้ฉันรวบรวมว่าพารามิเตอร์ตัวที่สองที่ใช้โดย R จำเป็นต้องแปลงผกผัน (1 / พารามิเตอร์) ก่อนที่จะใช้ใน BUGS (หรือ JAGS ในกรณีของฉัน)
ไม่มีใครทราบรายการที่ครอบคลุมของการเปลี่ยนแปลงเหล่านี้ที่มีอยู่ในปัจจุบัน?
ที่ใกล้เคียงที่สุดที่ฉันสามารถหาได้คือการเปรียบเทียบการแจกแจงในตารางที่ 7 ของคู่มือผู้ใช้ JAGS 2.2.0กับผลลัพธ์?rnorm
อื่น ๆ และอาจเป็นข้อความความน่าจะเป็นบางอย่าง วิธีนี้ดูเหมือนจะต้องการการแปลงที่จะต้องมีการอนุมานจากไฟล์ PDF แยกต่างหาก
ฉันต้องการหลีกเลี่ยงงานนี้ (และข้อผิดพลาดที่เป็นไปได้) หากทำไปแล้วหรือเริ่มรายการที่นี่
ปรับปรุง
ตามคำแนะนำของเบ็นฉันได้เขียนฟังก์ชั่นต่อไปนี้เพื่อแปลงดาต้าเฟรมของพารามิเตอร์จาก R เป็น BUGS parameterization
##' 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)