Betabin {VGAM}  R Documentation 
Density, distribution function, and random generation for the betabinomial distribution.
dbetabin(x, size, prob, rho, log=FALSE) pbetabin(q, size, prob, rho, log.p=FALSE) rbetabin(n, size, prob, rho) dbetabin.ab(x, size, shape1, shape2, log=FALSE) pbetabin.ab(q, size, shape1, shape2, log.p=FALSE) rbetabin.ab(n, size, shape1, shape2)
x, q 
vector of quantiles. 
size 
number of trials. 
n 
number of observations. Must be a positive integer of length 1. 
prob 
the probability of success mu.
Must be in the unit open interval (0,1).

rho 
the correlation parameter rho.
Must be in the unit open interval (0,1).

shape1, shape2 
the two (positive) shape parameters of the standard
beta distribution. They are called a and b in
beta respectively.

log, log.p 
Logical.
If TRUE then all probabilities p are given as log(p) .

The betabinomial distribution is a binomial distribution whose
probability of success is not a constant but it is generated from a
beta distribution with parameters shape1
and shape2
.
Note that the mean of this beta distribution is
mu=shape1/(shape1+shape2)
, which therefore is the
mean or the probability of success.
See betabinomial
and betabin.ab
,
the VGAM family functions for
estimating the parameters, for the formula of the probability density
function and other details.
dbetabin
and dbetabin.ab
give the density,
pbetabin
and pbetabin.ab
give the distribution function, and
rbetabin
and rbetabin.ab
generate random deviates.
pbetabin
and pbetabin.ab
can be particularly slow.
The functions here ending in .ab
are called from those
functions which don't.
The simple transformations
mu=alpha/(alpha+beta) and
rho=1/(1+alpha+beta) are used,
where alpha and beta are the two
shape parameters.
T. W. Yee
## Not run: N = 9; x = 0:N; s1=2; s2=3 dy = dbetabin.ab(x, size=N, shape1=s1, shape2=s2) barplot(rbind(dy, dbinom(x, size=N, prob=s1/(s1+s2))), beside = TRUE, col = c("blue","green"), las=1, main=paste("Betabinomial (size=",N,", shape1=",s1, ", shape2=",s2,") (blue) vs\n", " Binomial(size=", N, ", prob=", s1/(s1+s2), ") (green)", sep=""), names.arg = as.character(x), cex.main=0.8) sum(dy*x) # Check expected values are equal sum(dbinom(x, size=N, prob=s1/(s1+s2))*x) cumsum(dy)  pbetabin.ab(x, N, shape1=s1, shape2=s2) y = rbetabin.ab(n=10000, size=N, shape1=s1, shape2=s2) ty = table(y) barplot(rbind(dy, ty/sum(ty)), beside = TRUE, col = c("blue","red"), las=1, main=paste("Betabinomial (size=",N,", shape1=",s1, ", shape2=",s2,") (blue) vs\n", " Random generated betabinomial(size=", N, ", prob=", s1/(s1+s2), ") (red)", sep=""), cex.main=0.8, names.arg = as.character(x)) ## End(Not run)