zinegbinomial {VGAM} | R Documentation

## Zero-Inflated Negative Binomial Distribution Family Function

### Description

Fits a zero-inflated negative binomial distribution by full maximum likelihood estimation.

### Usage

    zinegbinomial(lphi="logit", lmunb = "loge", lk = "loge",
                  ephi=list(), emunb =list(), ek = list(),
                  iphi = NULL, ik = NULL, zero = -3, method.init=1,
                  shrinkage.init=0.95, nsimEIM=200)

### Arguments

`lphi, lmunb, lk` | Link functions for the parameters phi, the mean and k; see `negbinomial` for details, and `Links` for more choices.
`ephi, emunb, ek` | List. Extra arguments for the respective links. See `earg` in `Links` for general information.
`iphi, ik` | Optional initial values for phi and k. The default is to compute an initial value internally for both.
`method.init` | An integer with value `1` or `2` or `3` which specifies the initialization method for the mean parameter. If failure to converge occurs try another value and/or else specify a value for `shrinkage.init`.
`shrinkage.init` | How much shrinkage is used when initializing the mean. The value must be between 0 and 1 inclusive, and a value of 0 means the individual response values are used, and a value of 1 means the median or mean is used. This argument is used in conjunction with `method.init`.
`zero` | Integers specifying which linear/additive predictor is modelled as intercepts only. If given, their absolute values must be either 1 or 2 or 3, and the default is only the k parameters (one for each response). See `CommonVGAMffArguments` for more information.
`nsimEIM` | See `CommonVGAMffArguments` for more information.

### Details

This function uses simulation and Fisher scoring, and is based on

P(Y=0) = phi + (1-phi) * (k/(k+μ))^k,

and for y=1,2,...,

P(Y=y) = (1-phi) * dnbinom(y, μ, k).

The parameter phi satisfies 0 < phi < 1. The mean of Y is (1-phi)*munb (returned as the fitted values). By default, the three linear/additive predictors are (logit(phi), log(munb), log(k))^T. See `negbinomial`, another VGAM family function, for the formula of the probability density function and other details of the negative binomial distribution.

Independent multivariate responses are handled. If so then arguments `iphi` and `ik` may be vectors with length equal to the number of responses.

### Value

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

### Warning

Numerical problems can occur, e.g., when the probability of zero is actually less than, not more than, the nominal probability of zero. Half-stepping is not uncommon. If failure to converge occurs, try using combinations of `method.init`, `shrinkage.init`, `iphi`, `ik`, and/or `zero` if there are explanatory variables.

### Note

For intercept-models, the `misc` slot has a component called `p0` which is the estimate of P(Y=0). Note that P(Y=0) is not the parameter phi.

If k is large then the use of VGAM family function `zipoisson` is probably preferable. This follows because the Poisson is the limiting distribution of a negative binomial as k tends to infinity.

The zero-deflated negative binomial distribution cannot be handled with this family function. It can be handled with the zero-altered negative binomial distribution; see `zanegbinomial`.

### Author(s)

T. W. Yee

### See Also

`Zinegbin`, `negbinomial`, `rpois`.

### Examples

    x = runif(n <- 1000)
    phi = logit(-0.5+1*x, inverse=TRUE)
    munb = exp(3+x)
    k = exp(0+2*x)
    y1 = rzinegbin(n, phi, mu=munb, size=k)
    y2 = rzinegbin(n, phi, mu=munb, size=k)
    table(y1)["0"] / sum(table(y1))
    table(y2)["0"] / sum(table(y2))
    fit = vglm(cbind(y1,y2) ~ x, zinegbinomial(zero=NULL), trace=TRUE)
    coef(fit, matrix=TRUE)
    summary(fit)
    head(cbind(fitted(fit), (1-phi) * munb))
    vcov(fit)

[Package VGAM version 0.7-9 Index]