zanegbinomial(zero = "size", type.fitted = c("mean", "munb", "pobs0"), mds.min = 1e-3, nsimEIM = 500, cutoff.prob = 0.999, eps.trig = 1e-7, max.support = 4000, max.chunk.MB = 30, lpobs0 = "logit", lmunb = "loge", lsize = "loge", imethod = 1, ipobs0 = NULL, imunb = NULL, iprobs.y = NULL, gprobs.y = (0:9)/10, isize = NULL, gsize.mux = exp(c(-30, -20, -15, -10, -6:3)))
zanegbinomialff(lmunb = "loge", lsize = "loge", lonempobs0 = "logit", type.fitted = c("mean", "munb", "pobs0", "onempobs0"), isize = NULL, ionempobs0 = NULL, zero = c("size", "onempobs0"), mds.min = 1e-3, iprobs.y = NULL, gprobs.y = (0:9)/10, cutoff.prob = 0.999, eps.trig = 1e-7, max.support = 4000, max.chunk.MB = 30, gsize.mux = exp(c(-30, -20, -15, -10, -6:3)), imethod = 1, imunb = NULL, nsimEIM = 500)
pobs0
here.
See Links
for more choices.
munb
parameter, which is the mean
$munb$ of an ordinary negative binomial distribution.
See Links
for more choices.
k
. That is, as k
increases, the
variance of the response decreases.
See Links
for more choices.
CommonVGAMffArguments
and fittedvlm
for information.
munb
and k
.
If given then it is okay to give one value
for each response/species by inputting a vector whose length
is the number of columns of the response matrix.
Specifies which of the three linear predictors are modelled as intercept-only.
All parameters can be modelled as a
function of the explanatory variables by setting zero = NULL
(not recommended).
A negative value means that the value is recycled, e.g.,
setting $-3$ means all k
are intercept-only
for zanegbinomial
.
See CommonVGAMffArguments
for more information.
negbinomial
.
negbinomial
.
negbinomial
.
"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-p_0) \mu_{nb} / [1 - (k/(k+\mu_{nb}))^k].$$
If type.fitted = "pobs0"
then $pobs0$ is returned.posnegbinomial
.
Convergence for this VGAM family function seems to depend quite
strongly on providing good initial values. This VGAM family function is computationally expensive
and usually runs slowly;
setting trace = TRUE
is useful for monitoring convergence. Inference obtained from summary.vglm
and summary.vgam
may or may not be correct. In particular, the p-values, standard errors
and degrees of freedom may need adjustment. Use simulation on artificial
data to check that these are reasonable. For one response/species, by default, the three linear/additive
predictors
for zanegbinomial()
are $(logit(pobs0),
log(munb), log(k))^T$. This vector is recycled for multiple species.
The VGAM family function zanegbinomialff()
has a few
changes compared to zanegbinomial()
.
These are:
(i) the order of the linear/additive predictors is switched so the
negative binomial mean comes first;
(ii) argument onempobs0
is now 1 minus the probability of an observed 0,
i.e., the probability of the positive negative binomial distribution,
i.e., onempobs0
is 1-pobs0
;
(iii) argument zero
has a new default so that the pobs0
is intercept-only by default.
Now zanegbinomialff()
is generally recommended over
zanegbinomial()
.
Both functions implement Fisher scoring and can handle
multiple responses.
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.
Yee, T. W. (2014) Reduced-rank vector generalized linear models with two linear predictors. Computational Statistics and Data Analysis, 71, 889--902.
dzanegbin
,
posnegbinomial
,
negbinomial
,
binomialff
,
rposnegbin
,
zinegbinomial
,
zipoisson
,
dnbinom
,
CommonVGAMffArguments
,
simulate.vlm
.## Not run:
# zdata <- data.frame(x2 = runif(nn <- 2000))
# zdata <- transform(zdata, pobs0 = logit(-1 + 2*x2, inverse = TRUE))
# zdata <- transform(zdata,
# y1 = rzanegbin(nn, munb = exp(0+2*x2), size = exp(1), pobs0 = pobs0),
# y2 = rzanegbin(nn, munb = exp(1+2*x2), size = exp(1), pobs0 = pobs0))
# with(zdata, table(y1))
# with(zdata, table(y2))
#
# fit <- vglm(cbind(y1, y2) ~ x2, zanegbinomial, data = zdata, trace = TRUE)
# coef(fit, matrix = TRUE)
# head(fitted(fit))
# head(predict(fit))
# ## End(Not run)
Run the code above in your browser using DataLab