Posbinom {VGAM} | R Documentation |
Density, distribution function, quantile function and random generation for the positive-binomial distribution.
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)
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. |
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.
dposbinom
gives the density,
pposbinom
gives the distribution function,
qposbinom
gives the quantile function, and
rposbinom
generates random deviates.
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.
T. W. Yee
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)