Re: [R] how can generate from trunceted gamma distribution in R ?

2009-12-14 Thread Peter Ruckdeschel

 Duncan Murdoch wrote:
 On 11/12/2009 7:12 AM, khaz...@ceremade.dauphine.fr wrote:
 Hi, all
 How can generate a sample from truncated inverse  gamma distribution
 in R?

 Using the inverse CDF method or rejection sampling are possible,
 depending on what your truncation is like.  If your truncation forces
 the observations far out into the tails, you need to be careful about
 rounding and underflow when using the the inverse CDF method.

 Duncan Murdoch

 
 I think perusal of this paper might be a good idea:
 
 Sampling Truncated Normal, Beta, and Gamma Densities
 Paul Damien and Stephen G. Walker
 Journal of Computational and Graphical Statistics, Vol. 10, No. 2 (Jun.,
 2001), pp. 206-215
 
 Remembering that the inverse gamma is the inverse of a gamma, you may be
 able to get a truncated inverse gamma from a truncated (at the other
 end) gamma. Alternatively, the methodology outlined in the paper most
 likely can be modified for the inverse gamma.
 
 David Scott
 

While David Scott's reply definitely gives a more problem specific
solution than we could offer, you might also want to look at package
distr on CRAN where a general truncation operator for distributions is
provided --- see ?Truncate (after installing/attaching package distr).

The inverse Gamma so far is not implemented to distr as an S4-class
(you could easily do this yourself, though). But, as David Scott
mentioned you can produce it by something along the lines

require(distr)
G0 - Gammad(scale = 2.3, shape = 1.4) ## generates a Gamma distribution
G - 1/G0 ## the corresponding inverse Gamma
d(G)(2) ### density of G at 2
p(G)(4) ## cdf of G at 4 ...

## example for Truncated G
TG - Truncate(G, lower=0, upper=0.9)
 ## the lower=0  is somehow redundant in this case, will see if this
 ## can be set automatically in a next release..

q(TG)(0.99) ## upper 1% quantile

## and some functionals:
require(distrEx)
E(TG)
mad(TG)
sd(TG)

## I am not claiming that this code gives extremely accurate results,
## but for higher accuracy, you could easily overload operator / for
## operands numeric, Gammad (and if you like, correspondingly,
## write methods for E())

Note that our package even takes into account that you might
want to use log-scales if you are interested in the tails,
so it takes up Duncan Murdoch's comment in some sense,
automatically.


Best, Peter

__
R-help@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.


Re: [R] how can generate from trunceted gamma distribution in R ?

2009-12-11 Thread Greg Snow
One approach is to sample from a non-truncated inverse gamma, then if the 
observation is in the part you want truncated, throw it away and generate a new 
value.

-- 
Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
greg.s...@imail.org
801.408.8111


 -Original Message-
 From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-
 project.org] On Behalf Of khaz...@ceremade.dauphine.fr
 Sent: Friday, December 11, 2009 5:12 AM
 To: r-help@r-project.org
 Subject: [R] how can generate from trunceted gamma distribution in R ?
 
 
 Hi, all
 How can generate a sample from truncated inverse  gamma distribution in
 R?
 
 thanks
 
 __
 R-help@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.

__
R-help@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.


Re: [R] how can generate from trunceted gamma distribution in R ?

2009-12-11 Thread Duncan Murdoch

On 11/12/2009 7:12 AM, khaz...@ceremade.dauphine.fr wrote:

Hi, all
How can generate a sample from truncated inverse  gamma distribution in R?


Using the inverse CDF method or rejection sampling are possible, 
depending on what your truncation is like.  If your truncation forces 
the observations far out into the tails, you need to be careful about 
rounding and underflow when using the the inverse CDF method.


Duncan Murdoch



thanks

__
R-help@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.


__
R-help@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.