Hello, I've come across the following situation in R-1.8.1 (compile + running under RedHat 7.1):> phyper(24, 514, 5961-514, 53, lower.tail=T)[1] 1> phyper(24, 514, 5961-514, 53, lower.tail=F)[1] -1.037310e-11 I'd expect the later to be 0 or some very small positive number. Is this a number under-flow of the calculation? Do you think I'm safe if I just set the result to 0 in these cases? kind regards, Arne
Did you compile with gcc-2.96? I think there were some problems with the floating point arithmetic with that compiler (at least for the earlier versions released by Red Hat). -roger Arne.Muller at aventis.com wrote:> Hello, > > I've come across the following situation in R-1.8.1 (compile + running under > RedHat 7.1): > > >>phyper(24, 514, 5961-514, 53, lower.tail=T) > > [1] 1 > >>phyper(24, 514, 5961-514, 53, lower.tail=F) > > [1] -1.037310e-11 > > I'd expect the later to be 0 or some very small positive number. Is this a > number under-flow of the calculation? Do you think I'm safe if I just set the > result to 0 in these cases? > > kind regards, > > Arne > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://www.stat.math.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html >
Hi, yes, I did compile it with gcc 2.96 ... . Do you've an estimate on how "bad" this error is, e.g. how much it effects the calculations in R? kind regards, Arne> -----Original Message----- > From: Roger D. Peng [mailto:rpeng at jhsph.edu] > Sent: 04 February 2004 14:49 > To: Muller, Arne PH/FR > Cc: r-help at stat.math.ethz.ch > Subject: Re: [R] number point under-flow > > > Did you compile with gcc-2.96? I think there were some > problems with the floating point arithmetic with that > compiler (at least for the earlier versions released by Red > Hat). > > -roger > > Arne.Muller at aventis.com wrote: > > Hello, > > > > I've come across the following situation in R-1.8.1 > (compile + running under > > RedHat 7.1): > > > > > >>phyper(24, 514, 5961-514, 53, lower.tail=T) > > > > [1] 1 > > > >>phyper(24, 514, 5961-514, 53, lower.tail=F) > > > > [1] -1.037310e-11 > > > > I'd expect the later to be 0 or some very small positive > number. Is this a > > number under-flow of the calculation? Do you think I'm safe > if I just set the > > result to 0 in these cases? > > > > kind regards, > > > > Arne > > > > ______________________________________________ > > R-help at stat.math.ethz.ch mailing list > > https://www.stat.math.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html > > >
Try the latest patched version, as this has already been fixed.> phyper(24, 514, 5961-514, 53, lower.tail=F)[1] 1.084688e-13 o [l]choose() use a more accurate formula which also slightly improves p- and qhyper(); choose(n, k) now returns 0 instead of NaN for k < 0 or > n. On Wed, 4 Feb 2004 Arne.Muller at aventis.com wrote:> Hello, > > I've come across the following situation in R-1.8.1 (compile + running under > RedHat 7.1): > > > phyper(24, 514, 5961-514, 53, lower.tail=T) > [1] 1 > > phyper(24, 514, 5961-514, 53, lower.tail=F) > [1] -1.037310e-11 > > I'd expect the later to be 0 or some very small positive number. Is this a > number under-flow of the calculation? Do you think I'm safe if I just set the > result to 0 in these cases?-- 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