R: One-Altered Zeta Distribution

oazeta {VGAM} | R Documentation

## One-Altered Zeta Distribution

### Description

Fits a one-altered zeta distribution based on a conditional model involving a Bernoulli distribution and a 1-truncated zeta distribution.

### Usage

    oazeta(lpobs1 = "logitlink", lshape = "loglink",
           type.fitted = c("mean", "shape", "pobs1", "onempobs1"),
           gshape = exp((-4:3)/4), ishape = NULL, ipobs1 = NULL, zero = NULL)

### Arguments

`lpobs1` | Link function for the parameter pobs1 or phi, called `pobs1` or `phi` here. See `Links` for more choices.
`lshape` | See `zeta` for details.
`type.fitted` | See `CommonVGAMffArguments` and `fittedvlm` for information.
`gshape, ishape, ipobs1, zero` | See `CommonVGAMffArguments` for information.

### Details

The response Y is one with probability pobs1, or Y has a 1-truncated zeta distribution with probability 1-pobs1. Thus 0 < pobs1 < 1, which is modelled as a function of the covariates. The one-altered zeta distribution differs from the one-inflated zeta distribution in that the former has ones coming from one source, whereas the latter has ones coming from the zeta distribution too. The one-inflated zeta distribution is implemented in the VGAM package. Some people call the one-altered zeta a hurdle model.

The input can be a matrix (multiple responses). By default, the two linear/additive predictors of `oazeta` are (logit(phi), log(shape))^T.

### 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 = phi + (1- phi) A

where A is the mean of the one-truncated zeta distribution. If `type.fitted = "pobs1"` then pobs1 is returned.

### Note

This family function effectively combines `binomialff` and `otzeta` into one family function.

### Author(s)

T. W. Yee

### See Also

`Oazeta`, `zetaff`, `oizeta`, `otzeta`, `CommonVGAMffArguments`, `simulate.vlm`.

### Examples

    odata <- data.frame(x2 = runif(nn <- 1000))
    odata <- transform(odata, pobs1 = logitlink(-1 + 2*x2, inverse = TRUE),
                              shape =  loglink( 1 + 1*x2, inverse = TRUE))
    odata <- transform(odata, y1 = roazeta(nn, shape = shape, pobs1 = pobs1),
                              y2 = roazeta(nn, shape = shape, pobs1 = pobs1))
    with(odata, table(y1))

    ofit <- vglm(cbind(y1, y2) ~ x2, oazeta, data = odata, trace = TRUE)
    coef(ofit, matrix = TRUE)
    head(fitted(ofit))
    head(predict(ofit))
    summary(ofit)

[Package VGAM version 1.1-3 Index]