Saya telah menemukan beberapa distribusi yang BUGS dan R memiliki parameterisasi berbeda: Normal, log-Normal, dan Weibull.
Untuk masing-masing ini, saya mengumpulkan bahwa parameter kedua yang digunakan oleh R perlu diubah terbalik (1 / parameter) sebelum digunakan dalam BUGS (atau JAGS dalam kasus saya).
Adakah yang tahu daftar lengkap transformasi yang saat ini ada?
Yang paling dekat yang dapat saya temukan adalah membandingkan distribusi dalam tabel 7 dari manual pengguna JAGS 2.2.0 dengan hasil ?rnorm
dll. Dan mungkin beberapa kemungkinan teks. Pendekatan ini tampaknya mensyaratkan bahwa transformasi perlu disimpulkan dari pdf secara terpisah.
Saya lebih suka menghindari tugas ini (dan kemungkinan kesalahan) jika sudah dilakukan, atau mulai daftar di sini.
Memperbarui
Berdasarkan saran Ben, saya telah menulis fungsi berikut untuk mengubah kerangka data dari parameter dari parameterisasi ke 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)
sumber
Jawaban:
Saya tidak tahu daftar kaleng.
pembaruan : daftar ini (ditambah informasi tambahan) sekarang diterbitkan sebagai Menerjemahkan Fungsi Kerapatan Probabilitas: Dari R ke BUGS dan Kembali Lagi (2013), DS LeBauer, MC Dietze, BM Bolker R Journal 5 (1), 207-209.
Ini daftar saya (suntingan disediakan oleh penanya asli):
Normal dan log-normal adalah parameter dalam hal (presisi) daripada atau (std. Dev. Or variance);τ σ σ2 τ=1/σ2=1/var
Beta, Poisson, Eksponensial, Seragam semuanya sama
Binomial negatif dalam BUGS hanya memiliki parameterisasi diskrit (ukuran, prob), bukan parameterisasi "ekologis" (ukuran, mu, di mana ukuran dapat menjadi non-integer).
sunting : Weibull dalam BUGS adalah ( = , = ), dalam R is ( = , = ) [notasi matematika konsisten dengan notasi yang digunakan dalam dokumentasi masing-masing] Seperti yang ditunjukkan pada Bagaimana cara mengukur parameter a Distribusi Weibull di JAGS / BUGS? ,ν λ a b λ=(1/b)a
shape
lambda
shape
scale
Gamma dalam BUGS adalah (
shape
,rate
). Ini adalah default dalam R, tetapi R juga memungkinkan (bentuk, skala) [jika argumen skala bernama]; tingkat = 1 / skalaUrutan penting , terutama dalam BUGS (yang tidak memiliki argumen nama), misalnya R
dbinom(x,size,prob)
vs BUGSdbin(p,n)
[parameter yang sama, urutan yang berlawanan].Perbedaan nama :
dbinom
, BUGS =dbin
dchisq
, BUGS =dchisqr
dweibull
, BUGS =dweib
dnbinom
, BUGS =dnegbin
sunting : untuk distribusi terpotong penggunaan BUGS
I()
, JAGS menggunakandinterval()
[perlu melihat dalam dokumentasi JAGS jika Anda akan menggunakan ini, mungkin ada perbedaan halus lainnya]sumber
dinterval
distribusi, di mana BUGS bekerja dengan I ().