R: Negative Binomial Distribution Family Function With Known...

negbinomial.size {VGAM} | R Documentation

## 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,
                     iprobs.y = 0.35, imethod = 1,
                     ishrinkage = 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 (`matrix` with `byrow = TRUE`).
`lmu, imu` | Same as `negbinomial`.
`iprobs.y` | Same as `negbinomial`.
`imethod, zero` | Same as `negbinomial`.
`ishrinkage` | Same as `negbinomial`.

### 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.

### Value

An object of class `"vglmff"` (see `vglmff-class`). The object is used by modelling functions such as `vglm`, `rrvglm` and `vgam`.

### Note

If `lmu = "nbcanlink"` in `negbinomial.size()` then the `size` argument here should be assigned.

### Author(s)

Thomas W. Yee

### 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`, `simulate.vlm`.

### Examples

    # 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"),
                 data = 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)),
                 data = ndata, trace = TRUE)
    coef(fit2, matrix = TRUE)
    head(fit2@misc$size)  # size saved here

[Package VGAM version 1.0-3 Index]