| phyperAllBin {DPQ} | R Documentation |
phyperAllBinM() computes all four Molenaar binomial approximations
to the hypergeometric cumulative distribution function phyper().
phyperAllBin() computes Molenaar's four, plus the other four
phyperBin.1(), *.2, *.3, and *.4.
phyperAllBin (m, n, k, q = .suppHyper(m, n, k), lower.tail = TRUE, log.p = FALSE) phyperAllBinM(m, n, k, q = .suppHyper(m, n, k), lower.tail = TRUE, log.p = FALSE) .suppHyper(m, n, k)
m |
the number of white balls in the urn. |
n |
the number of black balls in the urn. |
k |
the number of balls drawn from the urn, hence must be in 0,1,…, m+n. |
q |
vector of quantiles representing the number of white balls
drawn without replacement from an urn which contains both black and
white balls. The default, |
lower.tail |
logical; if TRUE (default), probabilities are P[X ≤ x], otherwise, P[X > x]. |
log.p |
logical; if TRUE, probabilities p are given as log(p). |
the phyperAllBin*() functions return
a numeric matrix, with each column a different
approximation to phyper(m,n,k,q, lower.tail, log.p).
Note that the columns of phyperAllBinM() are a subset of
those from phyperAllBin().
Martin Maechler
See those in phyperBinMolenaar.
phyperBin.1 etc, and
phyperBinMolenaar.
.suppHyper # very simple:
stopifnot(identical(.suppHyper, ignore.environment = TRUE,
function (m, n, k) max(0, k-n):min(k, m)))
phBall <- phyperAllBin (5,15, 7)
phBalM <- phyperAllBinM(5,15, 7)
stopifnot(identical(
phBall[, colnames(phBalM)] ,
phBalM)
, .suppHyper(5, 15, 7) == 0:5
)
round(phBall, 4)
## relative Error: number of correct digits =
cbind(q = 0:5, round(-log10(abs(1 - phBall / phyper(0:5, 5,15,7))), digits=2))