Learn R Programming

VGAM (version 0.9-3)

negbinomial.size: Negative Binomial Distribution Family Function With Known Size

Description

Maximum likelihood estimation of the mean parameter of a negative binomial distribution with known size parameter.

Usage

negbinomial.size(size = Inf, lmu = "loge", imu = NULL,
                 probs.y = 0.75, imethod = 1,
                 shrinkage.init = 0.95, zero = NULL)

Arguments

size
Numeric, positive. Same as argument size of rnbinom. If the response is a matrix then this is recycled to a matrix of the same dimension, by row (
lmu, imu
Same as negbinomial.
probs.y
Same as negbinomial.
imethod, zero
Same as negbinomial.
shrinkage.init
Same as negbinomial.

Value

Details

This VGAM family function estimates only the mean parameter of the negative binomial distribution. See negbinomial for general information. Setting size = 1 gives what I call the NB-G (geometric model; see Hilbe (2011)). The default, size = Inf, corresponds to the Poisson distribution.

References

Hilbe, J. M. (2011) Negative Binomial Regression, 2nd Edition. Cambridge: Cambridge University Press.

Yee, T. W. (2014) Reduced-rank vector generalized linear models with two linear predictors. Computational Statistics and Data Analysis.

See Also

negbinomial, nbcanlink (NB-C model), quasipoissonff, poissonff, rnbinom.

Examples

Run this code
# Simulated data with various multiple responses
size1 <- exp(1); size2 <- exp(2); size3 <- exp(0); size4 <- Inf
ndata <- data.frame(x2 = runif(nn <- 1000))
ndata <- transform(ndata, eta1  = -1 - 2 * x2,  # eta1 must be negative
                          size1 = size1)
ndata <- transform(ndata,
                   mu1  = nbcanlink(eta1, size = size1, inv = TRUE))
ndata <- transform(ndata,
                   y1 = rnbinom(nn, mu = mu1,         size = size1),  # NB-C
                   y2 = rnbinom(nn, mu = exp(2 - x2), size = size2),
                   y3 = rnbinom(nn, mu = exp(3 + x2), size = size3),  # NB-G
                   y4 = rpois  (nn, la = exp(1 + x2)))

# Also known as NB-C with size known (Hilbe, 2011)
fit1 <- vglm(y1 ~ x2, negbinomial.size(size = size1, lmu = "nbcanlink"),
             ndata, trace = TRUE, crit = "coef")
coef(fit1, matrix = TRUE)
head(fit1@misc$size)  # size saved here

fit2 <- vglm(cbind(y2, y3, y4) ~ x2,
             negbinomial.size(size = c(size2, size3, size4)),
             ndata, trace = TRUE)
coef(fit2, matrix = TRUE)
head(fit2@misc$size)  # size saved here

Run the code above in your browser using DataLab