Learn R Programming

VGAM (version 1.1-5)

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)
qzibinom(p, size, prob, pstr0 = 0)
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

Same as 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, Gaitbinom, Binomial.

Examples

Run this code
# NOT RUN {
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

# }
# NOT RUN {
 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