R: Compute Hypergeometric Probabilities via Binomial...

phyperAllBin {DPQ} | R Documentation

## 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)

### 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,…, 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 ≤ x], otherwise, P[X > x].
`log.p` | logical; if TRUE, probabilities p are given as log(p).

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

### Author(s)

Martin Maechler

### References

See those in `phyperBinMolenaar`.

### See Also

`phyperBin.1` etc, and `phyperBinMolenaar`.

`phyper`

### Examples

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

[Package DPQ version 0.4-4 Index]