Fits a zero-altered binomial distribution based on a conditional model involving a Bernoulli distribution and a positive-binomial distribution.
1 2 3 4 5 6
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")
Parameter link function applied to the probability parameter
of the binomial distribution.
Link function for the parameter pobs0, called
Corresponding argument for the other parameterization. See details below.
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
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
are (logit(pobs0), log(prob))^T.
The VGAM family function
zabinomialff() has a few
changes compared to
(i) the order of the linear/additive predictors is switched so the
binomial probability comes first;
onempobs0 is now 1 minus the probability of an observed 0,
i.e., the probability of the positive binomial distribution,
zero has a new default so that the
is intercept-only by default.
zabinomialff() is generally recommended over
Both functions implement Fisher scoring and neither can handle
An object of class
The object is used by modelling functions such as
fitted.values slot of the fitted object,
which should be extracted by the generic function
the mean mu (default) which is given by
mu = (1-pobs0) * mub / [1 - (1 - mub)^N]
where mub is the usual binomial mean.
type.fitted = "pobs0" then pobs0 is returned.
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
one family function.
T. W. Yee
1 2 3 4 5 6 7 8 9 10 11 12 13 14
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.