View source: R/family.zeroinf.R
zageometric | R Documentation |
Fits a zero-altered geometric distribution based on a conditional model involving a Bernoulli distribution and a positive-geometric distribution.
zageometric(lpobs0 = "logitlink", lprob = "logitlink",
type.fitted = c("mean", "prob", "pobs0", "onempobs0"),
imethod = 1, ipobs0 = NULL, iprob = NULL, zero = NULL)
zageometricff(lprob = "logitlink", lonempobs0 = "logitlink",
type.fitted = c("mean", "prob", "pobs0", "onempobs0"),
imethod = 1, iprob = NULL, ionempobs0 = NULL, zero = "onempobs0")
lpobs0 |
Link function for the parameter |
lprob |
Parameter link function applied to the probability of success,
called |
type.fitted |
See |
ipobs0 , iprob |
Optional initial values for the parameters. If given, they must be in range. For multi-column responses, these are recycled sideways. |
lonempobs0 , ionempobs0 |
Corresponding argument for the other parameterization. See details below. |
zero , imethod |
See
|
The response Y
is zero with probability p_0
,
or Y
has a positive-geometric distribution with
probability 1-p_0
. Thus 0 < p_0 < 1
,
which is modelled as a function of the covariates. The zero-altered
geometric distribution differs from the zero-inflated
geometric distribution in that the former has zeros coming from one
source, whereas the latter has zeros coming from the geometric
distribution too. The zero-inflated geometric distribution
is implemented in the VGAM package. Some people
call the zero-altered geometric a hurdle model.
The input can be a matrix (multiple responses).
By default, the two linear/additive predictors
of zageometric
are (logit(\phi), logit(p))^T
.
The VGAM family function zageometricff()
has a few
changes compared to zageometric()
.
These are:
(i) the order of the linear/additive predictors is switched so the
geometric probability comes first;
(ii) argument onempobs0
is now 1 minus the probability of an observed 0,
i.e., the probability of the positive geometric distribution,
i.e., onempobs0
is 1-pobs0
;
(iii) argument zero
has a new default so that the pobs0
is intercept-only by default.
Now zageometricff()
is generally recommended over
zageometric()
.
Both functions implement Fisher scoring and can handle
multiple responses.
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-\phi) / p.
If type.fitted = "pobs0"
then p_0
is returned.
Convergence for this VGAM family function seems to depend quite strongly on providing good initial values.
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.
Note this family function allows p_0
to be modelled as
functions of the covariates. It is a conditional model, not a mixture
model.
This family function effectively combines
binomialff
and
posgeometric()
and geometric
into
one family function.
However, posgeometric()
is not written because it
is trivially related to geometric
.
T. W. Yee
dzageom
,
geometric
,
zigeometric
,
spikeplot
,
dgeom
,
CommonVGAMffArguments
,
simulate.vlm
.
zdata <- data.frame(x2 = runif(nn <- 1000))
zdata <- transform(zdata, pobs0 = logitlink(-1 + 2*x2, inverse = TRUE),
prob = logitlink(-2 + 3*x2, inverse = TRUE))
zdata <- transform(zdata, y1 = rzageom(nn, prob = prob, pobs0 = pobs0),
y2 = rzageom(nn, prob = prob, pobs0 = pobs0))
with(zdata, table(y1))
fit <- vglm(cbind(y1, y2) ~ x2, zageometric, data = zdata, trace = TRUE)
coef(fit, matrix = TRUE)
head(fitted(fit))
head(predict(fit))
summary(fit)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.