zabinomial {VGAM} | R Documentation

## Zero-Altered Binomial Distribution

### Description

Fits a zero-altered binomial distribution based on a conditional model involving a Bernoulli distribution and a positive-binomial distribution.

### Usage

    zabinomial(lpobs0 = "logitlink", lprob = "logitlink",
               type.fitted = c("mean", "prob", "pobs0"),
               ipobs0 = NULL, iprob = NULL, imethod = 1, zero = NULL)
    zabinomialff(lprob = "logitlink", lonempobs0 = "logitlink",
                 type.fitted = c("mean", "prob", "pobs0", "onempobs0"),
                 iprob = NULL, ionempobs0 = NULL, imethod = 1, zero = "onempobs0")

### Arguments

`lprob` | Parameter link function applied to the probability parameter of the binomial distribution. See `Links` for more choices.
`lpobs0` | Link function for the parameter pobs0, called `pobs0` here. See `Links` for more choices.
`type.fitted` | See `CommonVGAMffArguments` and `fittedvlm` for information.
`iprob, ipobs0` | See `CommonVGAMffArguments`.
`lonempobs0, ionempobs0` | Corresponding argument for the other parameterization. See details below.
`imethod, zero` | See `CommonVGAMffArguments`.

### Details

The response Y is zero with probability pobs0, else Y has a positive-binomial distribution with probability 1-pobs0. Thus 0 < pobs0 < 1, which may be modelled as a function of the covariates. The zero-altered binomial distribution differs from the zero-inflated binomial distribution in that the former has zeros coming from one source, whereas the latter has zeros coming from the binomial distribution too. The zero-inflated binomial distribution is implemented in `zibinomial`. Some people call the zero-altered binomial a hurdle model.

The input is currently a vector or one-column matrix. By default, the two linear/additive predictors for `zabinomial()` are (logit(pobs0), log(prob))^T.

The VGAM family function `zabinomialff()` has a few changes compared to `zabinomial()`. These are: (i) the order of the linear/additive predictors is switched so the binomial probability comes first; (ii) argument `onempobs0` is now 1 minus the probability of an observed 0, i.e., the probability of the positive binomial distribution, i.e., `onempobs0` is `1-pobs0`; (iii) argument `zero` has a new default so that the `onempobs0` is intercept-only by default. Now `zabinomialff()` is generally recommended over `zabinomial()`. Both functions implement Fisher scoring and neither can handle multiple responses.

### Value

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

The `fitted.values` slot of the fitted object, which should be extracted by the generic function `fitted`, returns the mean mu (default) which is given by

mu = (1-pobs0) * mub / [1 - (1 - mub)^N]

where mub is the usual binomial mean. If `type.fitted = "pobs0"` then pobs0 is returned.

### Note

The response should be a two-column matrix of counts, with first column giving the number of successes.

Note this family function allows pobs0 to be modelled as functions of the covariates by having `zero = NULL`. It is a conditional model, not a mixture model.

These family functions effectively combine `posbinomial` and `binomialff` into one family function.

### Author(s)

T. W. Yee

### See Also

`dzabinom`, `zibinomial`, `posbinomial`, `binomialff`, `dbinom`, `CommonVGAMffArguments`.

### Examples

    zdata <- data.frame(x2 = runif(nn <- 1000))
    zdata <- transform(zdata, size  = 10,
                              prob  = logitlink(-2 + 3*x2, inverse = TRUE),
                              pobs0 = logitlink(-1 + 2*x2, inverse = TRUE))
    zdata <- transform(zdata,
                       y1 = rzabinom(nn, size = size, prob = prob, pobs0 = pobs0))
    with(zdata, table(y1))

    zfit <- vglm(cbind(y1, size - y1) ~ x2, zabinomial(zero = NULL),
                 data = zdata, trace = TRUE)
    coef(zfit, matrix = TRUE)
    head(fitted(zfit))
    head(predict(zfit))
    summary(zfit)

[Package VGAM version 1.1-1 Index]