
dbetabinom(x, size, prob, rho = 0, log = FALSE)
pbetabinom(q, size, prob, rho, log.p = FALSE)
rbetabinom(n, size, prob, rho = 0)
dbetabinom.ab(x, size, shape1, shape2, log = FALSE, Inf.shape = 1e6)
pbetabinom.ab(q, size, shape1, shape2, log.p = FALSE)
rbetabinom.ab(n, size, shape1, shape2, .dontuse.prob = NULL)
dozibetabinom(x, size, prob, rho = 0, pstr0 = 0, pstrsize = 0, log = FALSE)
pozibetabinom(q, size, prob, rho, pstr0 = 0, pstrsize = 0,
lower.tail = TRUE, log.p = FALSE)
rozibetabinom(n, size, prob, rho = 0, pstr0 = 0, pstrsize = 0)
dozibetabinom.ab(x, size, shape1, shape2, pstr0 = 0, pstrsize = 0, log = FALSE)
pozibetabinom.ab(q, size, shape1, shape2, pstr0 = 0, pstrsize = 0,
lower.tail = TRUE, log.p = FALSE)
rozibetabinom.ab(n, size, shape1, shape2, pstr0 = 0, pstrsize = 0)
runif
.a
and b
in
beta
respectively.runif
.shape1
or shape2
exceeds this, then
it is taken to be Inf
.
Also, if shape1
or shape2
is less than its reciprocal,
then it might be loosely thoughpstr0
corresponds to the response having a
beta-binomial distribuion inflated only at size
.size
. The default value of
pstrsize
corresponds to the response having a beta-binomial distribution
inflated only at 0.dbetabinom
and dbetabinom.ab
give the density,
pbetabinom
and pbetabinom.ab
give the distribution function, and
rbetabinom
and rbetabinom.ab
generate random deviates.
dozibetabinom
and dozibetabinom.ab
give the inflated density,
pozibetabinom
and pozibetabinom.ab
give the inflated distribution function, and
rozibetabinom
and rozibetabinom.ab
generate random inflated deviates.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
For the inflated beta-binomial distribution, the probability mass
function is
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.
betabinomial
,
betabinomialff
,
Ozibeta
.set.seed(1); rbetabinom(10, 100, prob = 0.5)
set.seed(1); rbinom(10, 100, prob = 0.5) # The same since rho = 0
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)
cumsum(dy) - pbetabinom.ab(xx, N, shape1 = s1, shape2 = s2) # Should be all 0
y <- rbetabinom.ab(n = 10000, 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))
set.seed(208); N <- 1000000; size = 20;
pstr0 <- 0.2; pstrsize <- 0.2
k <- rozibetabinom.ab(N, size, s1, s2, pstr0, pstrsize)
hist(k, probability = TRUE, border = "blue",
main = "Blue = inflated; orange = ordinary beta-binomial",
breaks = -0.5 : (size + 0.5))
sum(k == 0) / N # Proportion of 0
sum(k == size) / N # Proportion of size
lines(0 : size,
dbetabinom.ab(0 : size, size, s1, s2), col = "orange")
lines(0 : size, col = "blue",
dozibetabinom.ab(0 : size, size, s1, s2, pstr0, pstrsize))
Run the code above in your browser using DataLab