Betabin {VGAM}R Documentation

The Beta-Binomial Distribution


Density, distribution function, and random generation for the beta-binomial 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 beta-binomial 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

See Also

betabinomial, betabin.ab.


## 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("Beta-binomial (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("Beta-binomial (size=",N,", shape1=",s1,
                   ", shape2=",s2,") (blue) vs\n",
        " Random generated beta-binomial(size=", N, ", prob=", s1/(s1+s2),
        ") (red)", sep=""), cex.main=0.8,
        names.arg = as.character(x))
## End(Not run)

[Package VGAM version 0.7-9 Index]