[R] Plot Mixtures of Synthetically Generated Gamma Distributions

Stephen Tucker brown_emu at yahoo.com
Mon Jul 7 08:52:35 CEST 2008


Are you trying to look at the difference in the gamma distributions due to variations in the shape and scale parameters? In this case, the following approach might be more straightforward:


## assign parameter values
params <- list(curve1=c(1,1),curve2=c(1,2),curve3=c(1,3))

## define function
gammafun <- function(shape,scale) {
  p <- seq(0.001,0.999,length=1000)
  x <- qgamma(p,shape,scale)
  y <- dgamma(x,shape,scale)
  list(x=x,y=y)
}

## apply function to parameters
dat <- lapply(params,function(p) gammafun(p[1],p[2]))

## plot lines
xlim <- range(sapply(dat,`[[`,"x"))
ylim <- range(sapply(dat,`[[`,"y"))
plot.new()
plot.window(xlim,ylim)
for( i in 1:3 ) lines(dat[[i]],col=i)
lapply(1:2,axis)
box()
legend("topright",lty=1,col=1:3,legend=names(dat))





----- Original Message ----
From: Gundala Viswanath <gundalav at gmail.com>
To: r-help at stat.math.ethz.ch
Sent: Sunday, July 6, 2008 8:24:06 PM
Subject: [R] Plot Mixtures of Synthetically Generated Gamma Distributions

Hi,

I have the following vector
which is created from 3 distinct distribution (three components) of gamma:

x=c(rgamma(30,shape=.2,scale=14),rgamma(30,shape=12,scale=10),rgamma(30,shape=5,scale=6))

I want to plot the density curve of X, in a way that it shows
a distinct 3 curves that represent each component.

How can I do that?

I tried this but doesn't work:

lines(density(x))

Please advise.

- Gundala Viswanath
Jakarta - Indonesia

______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list