Dla jakich rozkładów parametryzacje w BŁĘDACH i R są różne?

31

Znalazłem kilka rozkładów, dla których BŁĘDY i R mają różne parametryzacje: Normalny, log-Normalny i Weibull.

Dla każdego z nich zbieram, że drugi parametr użyty przez R musi zostać odwrócony (1 / parametr) przed użyciem w BŁĘDACH (lub JAGS w moim przypadku).

Czy ktoś wie o wyczerpującej liście tych transformacji, która obecnie istnieje?

Najbliższe, jakie mogę znaleźć, to porównanie rozkładów w tabeli 7 instrukcji obsługi JAGS 2.2.0 z wynikami ?rnormitp. I być może kilku tekstów prawdopodobieństwa. Podejście to wydaje się wymagać oddzielnego przekształcenia z plików pdf.

Wolałbym uniknąć tego zadania (i ewentualnych błędów), jeśli zostało już wykonane, lub rozpocząć listę tutaj.

Aktualizacja

W oparciu o sugestie Bena napisałem następującą funkcję, aby przekształcić ramkę danych parametrów z R na parametryzację BŁĘDU.

##' 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)
David LeBauer
źródło
2
Naprawdę nie jest to odpowiedź, ale uważam, że ten ściągawka jest przydatny, Niektóre użyteczne dystrybucje w analizie Bayesa z modelami z pomiarów edukacyjnych (RJ Mislevy, 2001) - obejmuje głównie dystrybucje BŁĘDÓW.
chl

Odpowiedzi:

36

Nie znam listy w puszce.

aktualizacja : ta lista (plus dodatkowe informacje) jest teraz opublikowana jako Tłumaczenie funkcji gęstości prawdopodobieństwa: od R do BŁĘDÓW i Z powrotem (2013), DS LeBauer, MC Dietze, BM Bolker R Journal 5 (1), 207-209.

Oto moja lista (zmiany dostarczone przez pierwotnego pytającego):

Normalne i log-normalne są sparametryzowane raczej w kategoriach (precyzja) niż lub (standardowe odchylenie lub wariancja); τσσ2τ=1/σ2=1/var

Beta, Poisson, wykładniczy, jednolity są takie same

Ujemny dwumian w BŁĘDACH ma tylko dyskretną parametryzację (rozmiar, prob), a nie parametr „ekologiczny” (rozmiar, mi, gdzie rozmiar może być niecałkowity).

edycja : Weibull w BŁĘDACH to ( = , = ), w R jest ( = , = ) [notacja matematyczna jest zgodna z notacją stosowaną w odpowiedniej dokumentacji] Jak wskazano w Jak sparametryzować Dystrybucja Weibulla w JAGS / BŁĘDACH? ,νshapeλlambdaashapebscaleλ=(1/b)a

Gamma w BŁĘDACH to ( shape, rate). Jest to wartość domyślna w R, ale R pozwala również (kształt, skala) [jeśli argument skali jest nazwany]; stopa = 1 / skala

Kolejność ma znaczenie , szczególnie w BŁĘDACH (które nie mają nazwanych argumentów), np. R dbinom(x,size,prob)vs BŁĘDY dbin(p,n)[te same parametry, odwrotna kolejność].

Różnice w nazwach :

  • Dwumianowy : R = dbinom, BŁĘDY =dbin
  • Chi-kwadrat : R = dchisq, BŁĘDY =dchisqr
  • Weibull : R = dweibull, BŁĘDY =dweib
  • Ujemny dwumian : R = dnbinom, BŁĘDY =dnegbin

edycja : w przypadku okrojonych dystrybucji wykorzystuje BŁĘDY I(), JAGS dinterval()[warto zajrzeć do dokumentacji JAGS, jeśli zamierzasz tego użyć, mogą występować inne subtelne różnice]

Ben Bolker
źródło
Świetna odpowiedź - dzięki. Zaoszczędzi mi to dużo mocy mózgu, czasu i - co najważniejsze - przed potencjalnymi błędami.
David LeBauer,
1
Nie zapominaj o różnicach w sposobie, w jaki BŁĘDY i JAGS radzą sobie ze skracaniem, cenzurą i wcześniejszym porządkowaniem tych dystrybucji (sekcja 8 instrukcji). W szczególności JAGS ma dintervaldystrybucję, w której BŁĘDY współpracują z I ().
conjugateprior