Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

zinegbinUC

Zero-Inflated Negative Binomial Distribution


Description

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

Usage

dzinegbin(x, size, prob = NULL, munb = NULL, pstr0 = 0, log = FALSE)
pzinegbin(q, size, prob = NULL, munb = NULL, pstr0 = 0)
qzinegbin(p, size, prob = NULL, munb = NULL, pstr0 = 0)
rzinegbin(n, size, prob = NULL, munb = NULL, pstr0 = 0)

Arguments

x, q

vector of quantiles.

p

vector of probabilities.

n

Same as in runif.

size, prob, munb, log

Arguments matching dnbinom. The argument munb corresponds to mu in dnbinom and has been renamed to emphasize the fact that it is the mean of the negative binomial component.

pstr0

Probability of structural zero (i.e., ignoring the negative binomial distribution), called phi.

Details

The probability function of Y is 0 with probability phi, and a negative binomial distribution with probability 1-phi. Thus

P(Y=0) = phi + (1-phi) * P(W=0)

where W is distributed as a negative binomial distribution (see rnbinom.) See negbinomial, a VGAM family function, for the formula of the probability density function and other details of the negative binomial distribution.

Value

dzinegbin gives the density, pzinegbin gives the distribution function, qzinegbin gives the quantile function, and rzinegbin generates random deviates.

Note

The argument pstr0 is recycled to the required length, and must have values which lie in the interval [0,1].

These functions actually allow for zero-deflation. That is, the resulting probability of a zero count is less than the nominal value of the parent distribution. See Zipois for more information.

Author(s)

T. W. Yee

See Also

Examples

munb <- 3; pstr0 <- 0.2; size <- k <- 10; x <- 0:10
(ii <- dzinegbin(x, pstr0 = pstr0, mu = munb, size = k))
max(abs(cumsum(ii) - pzinegbin(x, pstr0 = pstr0, mu = munb, size = k)))  # 0
table(rzinegbin(100, pstr0 = pstr0, mu = munb, size = k))

table(qzinegbin(runif(1000), pstr0 = pstr0, mu = munb, size = k))
round(dzinegbin(x, pstr0 = pstr0, mu = munb, size = k) * 1000)  # Should be similar

## Not run: barplot(rbind(dzinegbin(x, pstr0 = pstr0, mu = munb, size = k),
                dnbinom(x, mu = munb, size = k)), las = 1,
        beside = TRUE, col = c("blue", "green"), ylab = "Probability",
        main = paste("ZINB(mu = ", munb, ", k = ", k, ", pstr0 = ", pstr0,
                   ") (blue) vs NB(mu = ", munb,
                   ", size = ", k, ") (green)", sep = ""),
        names.arg = as.character(x)) 
## End(Not run)

VGAM

Vector Generalized Linear and Additive Models

v1.1-5
GPL-3
Authors
Thomas Yee [aut, cre], Cleve Moler [ctb] (author of several LINPACK routines)
Initial release
2021-01-13

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.