Learn R Programming

DPQ (version 0.5-3)

phyperAllBin: Compute Hypergeometric Probabilities via Binomial Approximations

Description

  • 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.

Usage

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)

Value

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().

Arguments

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,\dots, 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, .suppHyper(m, n, k) provides the full (finite) support.

lower.tail

logical; if TRUE (default), probabilities are \(P[X \le x]\), otherwise, \(P[X > x]\).

log.p

logical; if TRUE, probabilities p are given as log(p).

Author

Martin Maechler

References

See those in phyperBinMolenaar.

See Also

phyperBin.1 etc, and phyperBinMolenaar.

phyper

Examples

Run this code
.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))

Run the code above in your browser using DataLab