Betabin {VGAM} | R Documentation

## The Beta-Binomial Distribution

### Description

Density, distribution function, and random generation for the beta-binomial distribution.

### Usage

    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)

### Arguments

`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)`.

### Details

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.

### Value

`dbetabin` and `dbetabin.ab` give the density, `pbetabin` and `pbetabin.ab` give the distribution function, and `rbetabin` and `rbetabin.ab` generate random deviates.

### Note

`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.

### Author(s)

T. W. Yee

### See Also

`betabinomial`, `betabin.ab`.

### Examples

    ## 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]