zipoisson {VGAM} | R Documentation |
Fits a zero-inflated Poisson distribution by full maximum likelihood estimation.
zipoisson(lphi="logit", llambda = "loge", ephi=list(), elambda =list(), iphi = NULL, method.init=1, shrinkage.init=0.8, zero = NULL)
lphi |
Link function for the parameter phi.
See Links for more choices.
|
llambda |
Link function for the usual lambda parameter.
See Links for more choices.
|
ephi, elambda |
List. Extra argument for the respective links.
See earg in Links for general information.
|
iphi |
Optional initial value for phi, whose value must lie
between 0 and 1. The default is to compute an initial value internally.
|
method.init |
An integer with value 1 or 2 which
specifies the initialization method for lambda.
If failure to converge occurs try another value
and/or else specify a value for shrinkage.init
and/or else specify a value for iphi .
|
shrinkage.init |
How much shrinkage is used when initializing lambda.
The value must be between 0 and 1 inclusive, and
a value of 0 means the individual response values are used,
and a value of 1 means the median or mean is used.
This argument is used in conjunction with method.init .
|
zero |
An integer specifying which linear/additive predictor is modelled as
intercepts only. If given, the value must be either 1 or 2, and the
default is none of them. Setting zero=1 makes phi
a single parameter.
|
The model is a mixture of a Poisson distribution and the value 0; it has value 0 with probability phi else is Poisson(lambda) distributed. The model can be written
P(Y=0) = phi + (1-phi) * exp(-lambda),
and for y=1,2,...,
P(Y=y) = (1-phi) * exp(-lambda) * lambda^y / y!.
Here, the parameter phi satisfies 0 < phi < 1. The mean of Y is (1-phi)*lambda and these are returned as the fitted values. By default, the two linear/additive predictors are (logit(phi), log(lambda))^T. This function implements Fisher scoring.
An object of class "vglmff"
(see vglmff-class
).
The object is used by modelling functions such as vglm
and vgam
.
Numerical problems can occur.
Half-stepping is not uncommon.
If failure to converge occurs, try using combinations of
method.init
,
shrinkage.init
,
iphi
, and/or
zero=1
if there are explanatory variables.
For intercept-models, the misc
slot has a component called
p0
which is the estimate of P(Y=0). Note that P(Y=0)
is not the parameter phi. This family function currently
cannot handle a multivariate response.
This family function is now recommended above yip88
.
The zero-deflated Poisson distribution cannot be handled with
this family function. It can be handled with the zero-altered Poisson
distribution; see zapoisson
.
T. W. Yee
Thas, O. and Rayner, J. C. W. (2005) Smooth tests for the zero-inflated Poisson distribution. Biometrics, 61, 808–815.
Data: Angers, J-F. and Biswas, A. (2003) A Bayesian analysis of zero-inflated generalized Poisson model. Computational Statistics & Data Analysis, 42, 37–46.
Cameron, A. C. and Trivedi, P. K. (1998) Regression Analysis of Count Data. Cambridge University Press: Cambridge.
zapoisson
,
Zipois
,
yip88
,
zipebcom
,
rpois
.
x = runif(n <- 2000) phi = logit(-0.5 + 1*x, inverse=TRUE) lambda = loge(0.5 + 2*x, inverse=TRUE) y = rzipois(n, lambda, phi) table(y) fit = vglm(y ~ x, zipoisson, trace=TRUE) coef(fit, matrix=TRUE) # These should agree with the above values # Another example: data from McKendrick (1926). y = 0:4 # Number of cholera cases per household in an Indian village w = c(168, 32, 16, 6, 1) # Frequencies; there are 223=sum(w) households fit = vglm(y ~ 1, zipoisson, wei=w, trace=TRUE) coef(fit, matrix=TRUE) cbind(actual=w, fitted= round( dzipois(y, lambda=Coef(fit)[2], phi=Coef(fit)[1]) * sum(w), dig=2)) # Another example: data from Angers and Biswas (2003) y = 0:7 w = c(182, 41, 12, 2, 2, 0, 0, 1) y = y[w>0] w = w[w>0] fit = vglm(y ~ 1, zipoisson(lphi=probit, iphi=0.3), wei=w, tra=TRUE) fit@misc$prob0 # Estimate of P(Y=0) coef(fit, matrix=TRUE) Coef(fit) # Estimate of phi and lambda fitted(fit) weighted.mean(y,w) # Compare this with fitted(fit) summary(fit)