Betabinom | R Documentation |

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

```
dbetabinom(x, size, prob, rho = 0, log = FALSE)
pbetabinom(q, size, prob, rho = 0, log.p = FALSE)
rbetabinom(n, size, prob, rho = 0)
dbetabinom.ab(x, size, shape1, shape2, log = FALSE,
Inf.shape = exp(20), limit.prob = 0.5)
pbetabinom.ab(q, size, shape1, shape2, limit.prob = 0.5,
log.p = FALSE)
rbetabinom.ab(n, size, shape1, shape2, limit.prob = 0.5,
.dontuse.prob = NULL)
dzoibetabinom(x, size, prob, rho = 0, pstr0 = 0, pstrsize = 0,
log = FALSE)
pzoibetabinom(q, size, prob, rho, pstr0 = 0, pstrsize = 0,
lower.tail = TRUE, log.p = FALSE)
rzoibetabinom(n, size, prob, rho = 0, pstr0 = 0, pstrsize = 0)
dzoibetabinom.ab(x, size, shape1, shape2, pstr0 = 0, pstrsize = 0,
log = FALSE)
pzoibetabinom.ab(q, size, shape1, shape2, pstr0 = 0, pstrsize = 0,
lower.tail = TRUE, log.p = FALSE)
rzoibetabinom.ab(n, size, shape1, shape2, pstr0 = 0, pstrsize = 0)
```

`x, q` |
vector of quantiles. |

`size` |
number of trials. |

`n` |
number of observations.
Same as |

`prob` |
the probability of success |

`rho` |
the correlation parameter |

`shape1, shape2` |
the two (positive) shape parameters of the standard
beta distribution. They are called |

`log, log.p, lower.tail` |
Same meaning as |

`Inf.shape` |
Numeric. A large value such that,
if |

`limit.prob` |
Numerical vector; recycled if necessary.
If either shape parameters are |

`.dontuse.prob` |
An argument that should be ignored and |

`pstr0` |
Probability of a structual zero
(i.e., ignoring the beta-binomial distribution).
The default value of |

`pstrsize` |
Probability of a structual maximum value |

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

,
the VGAM family functions for
estimating the parameters, for the formula of the probability
density function and other details.

For the inflated beta-binomial distribution, the probability mass function is

```
P(Y = y) =
(1 - pstr0 - pstrsize) \times BB(y) + pstr0 \times I[y = 0] +
pstrsize \times I[y = size]
```

where `BB(y)`

is the probability mass function
of the beta-binomial distribution with the same shape parameters
(`pbetabinom.ab`

),
`pstr0`

is the inflated probability at 0
and `pstrsize`

is the inflated probability at 1.
The default values of `pstr0`

and `pstrsize`

mean that these functions behave like the ordinary
`Betabinom`

when only the essential arguments
are inputted.

`dbetabinom`

and `dbetabinom.ab`

give the density,
`pbetabinom`

and `pbetabinom.ab`

give the
distribution function, and
`rbetabinom`

and `rbetabinom.ab`

generate random
deviates.

`dzoibetabinom`

and `dzoibetabinom.ab`

give the
inflated density,
`pzoibetabinom`

and `pzoibetabinom.ab`

give the
inflated distribution function, and
`rzoibetabinom`

and `rzoibetabinom.ab`

generate
random inflated deviates.

Setting `rho = 1`

is not recommended,
however the code may be
modified in the future to handle this special case.

`pzoibetabinom`

, `pzoibetabinom.ab`

,
`pbetabinom`

and `pbetabinom.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 and Xiangjie Xue

`betabinomial`

,
`betabinomialff`

,
`Zoabeta`

,
`Beta`

.

```
set.seed(1); rbetabinom(10, 100, prob = 0.5)
set.seed(1); rbinom(10, 100, prob = 0.5) # The same as rho = 0
## Not run: N <- 9; xx <- 0:N; s1 <- 2; s2 <- 3
dy <- dbetabinom.ab(xx, size = N, shape1 = s1, shape2 = s2)
barplot(rbind(dy, dbinom(xx, 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(xx), cex.main = 0.8)
sum(dy * xx) # Check expected values are equal
sum(dbinom(xx, size = N, prob = s1 / (s1+s2)) * xx)
# Should be all 0:
cumsum(dy) - pbetabinom.ab(xx, N, shape1 = s1, shape2 = s2)
y <- rbetabinom.ab(n = 1e4, size = N, shape1 = s1, shape2 = s2)
ty <- table(y)
barplot(rbind(dy, ty / sum(ty)),
beside = TRUE, col = c("blue", "orange"), 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), ") (orange)", sep = ""), cex.main = 0.8,
names.arg = as.character(xx))
N <- 1e5; size <- 20; pstr0 <- 0.2; pstrsize <- 0.2
kk <- rzoibetabinom.ab(N, size, s1, s2, pstr0, pstrsize)
hist(kk, probability = TRUE, border = "blue", ylim = c(0, 0.25),
main = "Blue/green = inflated; orange = ordinary beta-binomial",
breaks = -0.5 : (size + 0.5))
sum(kk == 0) / N # Proportion of 0
sum(kk == size) / N # Proportion of size
lines(0 : size,
dbetabinom.ab(0 : size, size, s1, s2), col = "orange")
lines(0 : size, col = "green", type = "b",
dzoibetabinom.ab(0 : size, size, s1, s2, pstr0, pstrsize))
## End(Not run)
```

VGAM documentation built on Sept. 19, 2023, 9:06 a.m.

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.