BUGS ve R'deki parametreler hangi dağılımlar için farklıdır?


31

BUGS ve R'nin farklı parametrelere sahip olduğu bazı dağıtımlar buldum: Normal, log-Normal ve Weibull.

Bunların her biri için, R tarafından kullanılan ikinci parametrenin BUGS'de (veya benim durumumda JAGS) kullanılmadan önce ters dönüştürülmesinin (1 / parametre) olması gerektiğini biliyorum.

Halen var olan bu dönüşümlerin kapsamlı bir listesini bilen var mı?

Bulduğum en yakın şey JAGS 2.2.0 kullanım kılavuzunun 7. tablosundaki dağılımları ?rnormvb . Sonuçlarla ve belki de birkaç olasılık metniyle karşılaştırmak olabilir . Bu yaklaşım, dönüşümlerin pdf'lerden ayrı olarak çıkarılması gerektiğini gerektiriyor gibi görünmektedir.

Daha önce yapılmışsa, bu görevin önüne geçmeyi (ve olası hataları) tercih ederdim veya listeyi burada başlatabilirim.

Güncelleştirme

Ben'in önerilerini temel alarak, bir veri parametresini R'den BUGS parametrelerine dönüştürmek için aşağıdaki işlevi yazdım.

##' 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
Gerçekten bir cevap değil, ama bu kopya sayfasını yararlı buldum , Eğitimsel Ölçüm Modelleriyle Bayes Analizinde Bazı Yararlı Dağılımlar (RJ Mislevy, 2001) - çoğunlukla BUGS dağılımlarını kapsar.
chl

Yanıtlar:


36

Konserve listesi bilmiyorum.

güncelleme : bu liste (artı ek bilgiler) artık Tercüme Olasılık Yoğunluğu İşlevleri olarak yayınlandı : R'den BUGS'a ve Tekrar Tekrar (2013), DS LeBauer, MC Dietze, BM Bolker R Journal 5 (1), 207-209.

İşte listem (orijinal sorgulayıcı tarafından sağlanan düzenlemeler):

Normal ve log-normal , veya (standart sapma veya sapma) yerine (kesinlik ); τσσ2τ=1/σ2=1/var

Beta, Poisson, Üstel, Üniforma hepsi aynı

BUGS'daki negatif binom , yalnızca "ekolojik" (boyut, tam sayı olmayan tam sayı olabilir) boyut, mu) değil, yalnızca ayrı parametreleştirme (boyut, prob) değerine sahiptir.

düzenlemek : Weibull BUGS (olup = , = R (mi), = , = ) olarak en işaret [matematik notasyonu ilgili belgelerde kullanılan notasyon ile tutarlıdır] bir parameterize nasıl JAGS / BUGS’da Weibull dağılımı ,νshapeλlambdaashapebscaleλ=(1/b)a

HATALARdaki Gama ( shape, rate). Bu, R'deki varsayılan değerdir, ancak R ayrıca izin verir (şekil, ölçek) [eğer ölçek argümanı isimlendirilirse]; oran = 1 / ölçek

Sipariş sorunları , özellikle BUGS'de (isimlendirilmiş argümanlara sahip değil), örneğin R dbinom(x,size,prob)vs BUGS dbin(p,n)[aynı parametreler, ters sırada].

İsim farklılıkları :

  • Binom : R = dbinom, HATA =dbin
  • Ki-kare : R = dchisq, HATA =dchisqr
  • Weibull : R = dweibull, HATA =dweib
  • Negatif binom : R = dnbinom, HATA =dnegbin

düzenleme : kesilmiş dağıtımlar için BUGS kullanır I(), JAGS kullanır dinterval()[bunu kullanacaksanız JAGS belgelerine bakmaya değer, başka ince farklılıklar olabilir]


Harika cevap - teşekkürler. Bu beni çok fazla beyin gücü, zaman ve - en önemlisi potansiyel hatalardan koruyacak.
David LeBauer

1
BUGS ve JAGS'ın bu dağıtımların kesilmesi, sansürlenmesi ve sıralanması ile nasıl başa çıktığı arasındaki farkları unutmayın (kılavuzun 8. bölümü). Özellikle, JAGS, BUGS'un dintervalI () ile çalıştığı bir dağılıma sahiptir .
conjugateprior
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.