[R] phyper returning zero
Martin Maechler
maechler at stat.math.ethz.ch
Fri Mar 15 10:36:46 CET 2013
>>>>> "eh" == elliott harrison <e.harrison at epistem.co.uk>
>>>>> on Fri, 15 Mar 2013 08:52:36 +0000 writes:
eh> Hi,
eh> I am attempting to use phyper to test the significance
eh> of two overlapping lists. I keep getting a zero and
eh> wondered if that was determining non-significance of my
eh> overlap or a p-value too small to calculate?
well what do you guess? (:-)
eh> overlap = 524
eh> lista = 2784
eh> totalpop = 54675
eh> listb = 1296
eh> phyper(overlap, lista, totalpop, listb,lower.tail = FALSE, log.p=F)
eh> [1] 0
Well, just *do* use log.p=TRUE :
> phyper(overlap, lista, totalpop, listb,lower.tail = FALSE, log.p=TRUE)
[1] -800.0408
so, indeed P = exp(-800) which is smaller than the smallest
positive number in double precision,
which by the way is available in R as
> .Machine$double.xmin
[1] 2.225074e-308
I'm pretty sure that I cannot think of a situation where it is
important to know that the more exact probability is around
10^(-347.45)
> phyper(overlap, lista, totalpop, listb,lower.tail = FALSE,
log.p=TRUE) / log(10)
[1] -347.4533
rather than to know that it is very very very small.
Martin
>
eh> If I plug in some different values I get a p-value but since zero is actually lower is the overlap significant, or more likely have I made a mistake in using the function?
eh> phyper(10, 100, 20000, 100,lower.tail = FALSE, log.p=F)
eh> [1] 2.582795e-12
eh> Thanks
eh> Elliott
More information about the R-help
mailing list