Learn R Programming

VGAM (version 0.9-1)

zapoisson: Zero-Altered Poisson Distribution

Description

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

Usage

zapoisson(lpobs0 = "logit", llambda = "loge", zero = NULL)

Arguments

lpobs0
Link function for the parameter $p_0$, called pobs0 here. See Links for more choices.
llambda
Link function for the usual $\lambda$ parameter. See Links for more choices.
zero
See CommonVGAMffArguments for more information.

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$ which is given by $$\mu = (1-p_0) \lambda / [1 - \exp(-\lambda)].$$

Details

The response $Y$ is zero with probability $p_0$, else $Y$ has a positive-Poisson($\lambda)$ distribution with probability $1-p_0$. Thus $0 < p_0 < 1$, which is modelled as a function of the covariates. The zero-altered Poisson distribution differs from the zero-inflated Poisson distribution in that the former has zeros coming from one source, whereas the latter has zeros coming from the Poisson distribution too. Some people call the zero-altered Poisson a hurdle model.

For one response/species, by default, the two linear/additive predictors are $(logit(p_0), \log(\lambda))^T$. Fisher scoring is implemented.

References

Welsh, A. H., Cunningham, R. B., Donnelly, C. F. and Lindenmayer, D. B. (1996) Modelling the abundances of rare species: statistical models for counts with extra zeros. Ecological Modelling, 88, 297--308.

Angers, J-F. and Biswas, A. (2003) A Bayesian analysis of zero-inflated generalized Poisson model. Computational Statistics & Data Analysis, 42, 37--46.

Documentation accompanying the VGAM package at http://www.stat.auckland.ac.nz/~yee contains further information and examples.

See Also

rzapois, zipoisson, pospoisson, posnegbinomial, binomialff, rpospois, CommonVGAMffArguments.

Examples

Run this code
zapdata <- data.frame(x2 = runif(nn <- 1000))
zapdata <- transform(zapdata, pobs0  = logit( -1 + 1*x2, inverse = TRUE),
                              lambda = loge(-0.5 + 2*x2, inverse = TRUE))
zapdata <- transform(zapdata, y = rzapois(nn, lambda, pobs0 = pobs0))

with(zapdata, table(y))
fit <- vglm(y ~ x2, zapoisson, zapdata, trace = TRUE)
fit <- vglm(y ~ x2, zapoisson, zapdata, trace = TRUE, crit = "coef")
head(fitted(fit))
head(predict(fit))
head(predict(fit, untransform = TRUE))
coef(fit, matrix = TRUE)
summary(fit)


# Another example ------------------------------
# Data from Angers and Biswas (2003)
abdata <- data.frame(y = 0:7, w = c(182, 41, 12, 2, 2, 0, 0, 1))
abdata <- subset(abdata, w > 0)
yy <- with(abdata, rep(y, w))
fit3 <- vglm(yy ~ 1, zapoisson, trace = TRUE, crit = "coef")
coef(fit3, matrix = TRUE)
Coef(fit3) # Estimate lambda (they get 0.6997 with SE 0.1520)
head(fitted(fit3), 1)
mean(yy) # compare this with fitted(fit3)

Run the code above in your browser using DataLab