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. Must be a single positive integer.
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 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-7 Index]