[R] Quantile function for the generalized beta distribution of the 2nd kind

Florent Bresson f_bresson at yahoo.fr
Mon Dec 12 11:12:39 CET 2005


The problem was with the use of the integrate command
for the definition of the cdf of the generalized beta
of the second kind. I solved the problem with a
transformation of the function qbeta. I then used an
optimize command but using uniroot is maybe  nicer. So
my function is :

qgbeta2  <-  function(proba,b,a,p1,p2) { val
<-qbeta(proba,p1,p2)   
                b*(uniroot(function(z) {z/(z+1)-val},
lower=0, upper=10000000,
tol=.Machine$double.eps^20)$root)^(1/a) }

The code is maybe not pretty but it works perfectly. I
just regret that it is not possible to fix the upper
limit of uniroot to Inf.

Thanks for help

--- Prof Brian Ripley <ripley at stats.ox.ac.uk> a écrit
:

> Don't you want to use uniroot() to find quantiles? 
> It is the usual way.
> 
> Note that if you use integrate(), the result is not
> guaranteed to be 
> smooth function of the parameters.  I may well help
> to decrease the 
> tolerances.
> 
> > but it doesn't work
> 
> Please see the posting guide, and tell us useful
> information about what 
> precisely happened.
> 
> On Sun, 11 Dec 2005, Florent Bresson wrote:
> 
> > I have succeded in defining the cdf of the
> generalized
> > beta of the second kind, eg.
> >
> > pgbeta2 <-  function(quint,b,a,p1,p2) {
> > integrate(function(x)
> >
>
{exp(log(a)+(a*p1-1)*log(x)-(a*p1)*log(b)-log(beta(p1,p2))-(p1+p2)*log(1+(x/b)^a))},0,quint)$value
> > }
> >
> > but I'm facing problems with the quantile
> function. I
> > tried something like
> >
> > qgbeta2 <-  function(proba,b,a,p1,p2) {
> > optimize(function(z)
> > {(proba-pgbeta2(z,b,a,p1,p2))^2},lower=0,
> > upper=10^200) }
> >
> > but it doesn't work. I tried with other non linear
> > optimization command like optim but it is
> apparently
> > not the solution.
> > Any idea ?
> >
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
> >
> 
> -- 
> Brian D. Ripley,                 
> ripley at stats.ox.ac.uk
> Professor of Applied Statistics, 
> http://www.stats.ox.ac.uk/~ripley/
> University of Oxford,             Tel:  +44 1865
> 272861 (self)
> 1 South Parks Road,                     +44 1865
> 272866 (PA)
> Oxford OX1 3TG, UK                Fax:  +44 1865
> 272595
>




More information about the R-help mailing list