[R] Looking for non-central F quantile

Peter Dalgaard BSA p.dalgaard at biostat.ku.dk
Sat Mar 8 11:15:29 CET 2003

Andrew Robinson <andrewr at uidaho.edu> writes:

> Greetings all,
> I'm trying to figure out how to calculate the inverse CDF (i.e. a
> quantile) for a non-central F distribution.  I could put together a quick
> numerical solver routine using the CDF, but I wonder if there's a function
> that I've missed that would be more efficient?

If we had one, then there would have been an 'ncp' argument to qf()....
In my experience, uniroot() gets you there fast enough in most cases:

> uniroot(function(x)pf(x,ncp=3,4,20)-.995,c(0,1000))$root
[1] 8.301055

(BTW: That chased up a few buglets:

> pf(Inf,ncp=3,4,20)
[1] NaN
Warning message:
NaNs produced in: pnf(q, df1, df2, ncp, lower.tail, log.p)


> pf(Inf,4,20)
[1] 1
which would also be a sensible result in the noncentral case. Also
-- and what I was trying -- it would be great if uniroot accepted
infinite limits, but it doesn't. Shouldn't be too hard...) 

   O__  ---- Peter Dalgaard             Blegdamsvej 3  
  c/ /'_ --- Dept. of Biostatistics     2200 Cph. N   
 (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)             FAX: (+45) 35327907

More information about the R-help mailing list