| 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:
x = 0:size
plot(x, dposbinom(x, size, prob), type="h", ylab="Probability",
main=paste("Positive-binomial(", size, ",", prob, ") (blue) vs",
" Binomial(", size, ",", prob, ") (red and shifted slightly)", sep=""),
lwd=2, col="blue", las=1)
lines(x+0.05, dbinom(x, size, prob), type="h", lwd=2, col="red")
## End(Not run)