2013-08-23 15 views

Antwort

6

Obwohl @Dason und @Stephane bereits kommentiert, dass Ihre Ansatz gültig ist, gibt es mehrere Pakete in R, die dies tun (gefunden für r inverse gamma googeln:

Siehe auch die Wikipedia-Seite für die gamma distribution und die inverse gamma distribution für die Wahrscheinlichkeitsdichtefunktion beiden Verteilungen:

enter image description here

für die Gamma-Verteilung im Vergleich:

enter image description here

für die Inverses Gamma.

+1

Obwohl sie die Parameter nicht richtig verstanden haben, verstehe ich nicht, warum Sie "nein" sagen, da ihre Methode eine Möglichkeit ist, ein inverses Gamma zu erzeugen ... – Dason

+0

Bearbeitete meine Antwort weniger streng. @Dason nach ein bisschen Forschung schien es, dass die beiden Distributionen sind sehr unterschiedlich, aber ich stehe korrigiert. –

-1

Der folgende Code ist ein Beispiel für den Vergleich von Simulationen des inversen Gammas aus verschiedenen R-Paketen @ user2005253 und @Stephane.

@ Paul Hiemstra Ich bin nicht sicher über die ringvamma {MCMCpack}

# double check implementations from various packages 
library(ggplot2) 
alpha = 1 
rate = 0.5 

# stats library ---------------------------------- 
library(stats) 
x.base<- 1/rgamma(10000, shape = alpha, rate = rate) 
x11() 
p.try0<- ggplot(data.frame(x = x.base), aes(x=x)) + geom_density() + 
ggtitle(paste("Stats package: shape", alpha, "rate ", rate)) + xlim(c(0, 3)) 
p.try0 

# invgamma library ------------------------------- 
library(invgamma) 
sims.1<- rinvgamma(10000, shape = alpha, rate = rate) 
p.try1<- ggplot(data.frame(x = sims.1), aes(x=x)) + geom_density() + 
    ggtitle(paste("Package (invgamma) shape", alpha, " rate ", rate, sep = ""))+ 
    xlim(c(0, 3)) 
x11() 
p.try1 

detach("package:invgamma", unload = TRUE) 

# MCMCpack library ------------------------------- 
library(MCMCpack) # no rate argument - this works only on shape and scale. 
        #That's ok since scale = 1/rate 
sims.2<- rinvgamma(10000, shape = alpha, scale = 1/rate) 

p.try2<- ggplot(data.frame(x = sims.2), aes(x=x)) + geom_density() + 
    ggtitle(paste("Package MCMCpack: shape", alpha, " scale", 1/rate, sep = "")) + 
    xlim(c(0, 3)) 

x11() 
p.try2 

# Implementation of rinvgamma incorrect for MCMC pack? Because this works with 
sims.3<- rinvgamma(10000, shape = alpha, scale = rate) 

p.try3<- ggplot(data.frame(x = sims.2), aes(x=x)) + geom_density() + 
    ggtitle(paste("again MCMCpack: here scale = rate ???")) + xlim(c(0, 3)) 

x11() 
p.try3 
Verwandte Themen