Posbinom {VGAM} | R Documentation

## Positive-Binomial Distribution

### Description

Density, distribution function, quantile function and random generation for the positive-binomial distribution.

### Usage

    dposbinom(x, size, prob, log = FALSE)
    pposbinom(q, size, prob, lower.tail = TRUE, log.p = FALSE)
    qposbinom(p, size, prob, lower.tail = TRUE, log.p = FALSE)
    rposbinom(n, size, prob)

### Arguments

`x, q` | vector of quantiles.
`p` | vector of probabilities.
`n` | number of observations. If `length(n) > 1` then the length is taken to be the number required.
`size` | number of trials. It is the N symbol in the formula given in `posbinomial`.
`prob` | probability of success on each trial.
`log, log.p, lower.tail` | Arguments that are passed on to `pbinom` etc.

### Details

The positive-binomial distribution is a binomial distribution but with the probability of a zero being zero. The other probabilities are scaled to add to unity. The mean therefore is

mu / (1-(1-mu)^N)

where mu is the argument `prob` above. As mu increases, the positive-binomial and binomial distributions become more similar. Unlike similar functions for the binomial distribution, a zero value of `prob` is not permitted here.

### Value

`dposbinom` gives the density, `pposbinom` gives the distribution function, `qposbinom` gives the quantile function, and `rposbinom` generates random deviates.

### Note

For `dposbinom()`, if arguments `size` or `prob` equal 0 then a `NaN` is returned.

For `rposbinom()`, the arguments of the function are fed into `rbinom` until n positive values are obtained. This may take a long time if `prob` has values close to 0.

The family function `posbinomial` estimates the parameters by maximum likelihood estimation.

### Author(s)

T. W. Yee

### See Also

`posbinomial`, `rbinom`.

### Examples

    prob = 0.2
    size = 10
    y = rposbinom(n=1000, size, prob)
    table(y)
    mean(y)  # Sample mean
    prob / (1-(1-prob)^size) # Population mean

    (i = dposbinom(0:size, size, prob))
    cumsum(i) - pposbinom(0:size, size, prob)  # Should be 0s
    table(rposbinom(100, size, prob))

    table(qposbinom(runif(1000), size, prob))
    round(dposbinom(1:10, size, prob) * 1000) # Should be similar

    ## Not run:
    barplot(rbind(dposbinom(x, size, prob),
                  dbinom(x, size, prob)),
            beside = TRUE, col = c("blue","green"),
            main=paste("Positive-binomial(", size, ",", prob, ") (blue) vs",
            " Binomial(", size, ",", prob, ") (green)", sep=""),
            names.arg = as.character(x), las=1)
    ## End(Not run)

[Package VGAM version 0.7-9 Index]