Learn R Programming

VGAM (version 1.0-1)

Zibinom: Zero-Inflated Binomial Distribution

Description

Density, distribution function, quantile function and random generation for the zero-inflated binomial distribution with parameter pstr0.

Usage

dzibinom(x, size, prob, pstr0 = 0, log = FALSE)
pzibinom(q, size, prob, pstr0 = 0, lower.tail = TRUE, log.p = FALSE)
qzibinom(p, size, prob, pstr0 = 0, lower.tail = TRUE, log.p = FALSE)
rzibinom(n, size, prob, pstr0 = 0)

Arguments

x, q
vector of quantiles.
p
vector of probabilities.
size
number of trials. It is the $N$ symbol in the formula given in zibinomial.
prob
probability of success on each trial.
n
Same as in runif.
log, log.p, lower.tail
Arguments that are passed on to pbinom.
pstr0
Probability of a structural zero (i.e., ignoring the binomial distribution), called $\phi$. The default value of $\phi=0$ corresponds to the response having an ordinary binomial distribution.

Value

  • dzibinom gives the density, pzibinom gives the distribution function, qzibinom gives the quantile function, and rzibinom generates random deviates.

Details

The probability function of $Y$ is 0 with probability $\phi$, and $Binomial(size, prob)$ with probability $1-\phi$. Thus $$P(Y=0) =\phi + (1-\phi) P(W=0)$$ where $W$ is distributed $Binomial(size, prob)$.

See Also

zibinomial, dbinom.

Examples

Run this code
prob <- 0.2; size <- 10; pstr0 <- 0.5
(ii <- dzibinom(0:size, size, prob, pstr0 = pstr0))
max(abs(cumsum(ii) - pzibinom(0:size, size, prob, pstr0 = pstr0)))  # Should be 0
table(rzibinom(100, size, prob, pstr0 = pstr0))

table(qzibinom(runif(100), size, prob, pstr0 = pstr0))
round(dzibinom(0:10, size, prob, pstr0 = pstr0) * 100)  # Should be similar

x <- 0:size
barplot(rbind(dzibinom(x, size, prob, pstr0 = pstr0),
                dbinom(x, size, prob)),
        beside = TRUE, col = c("blue", "green"), ylab = "Probability",
        main = paste("ZIB(", size, ", ", prob, ", pstr0 = ", pstr0, ") (blue) vs",
                     " Binomial(", size, ", ", prob, ") (green)", sep=""),
        names.arg = as.character(x), las = 1, lwd = 2)

Run the code above in your browser using DataLab