yip88(link.lambda = "loge", n.arg = NULL)
Links
for more choices."vglmff"
(see vglmff-class
).
The object is used by modelling functions such as vglm
,
rrvglm
and vgam
.zipoisson
.
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.
The probability function of $Y$ is 0 with probability
$\phi$, and
Poisson($\lambda$) with probability $1-\phi$.
Thus
fitted
applied to the object.
This family function treats $\phi$ as a scalar. If you want
to model both $\phi$ and $\lambda$ as a function
of covariates, try zipoisson
.
Angers, J-F. and Biswas, A. (2003) A Bayesian analysis of zero-inflated generalized Poisson model. Computational Statistics & Data Analysis, 42, 37--46.
zipoisson
,
Zipois
,
zapoisson
,
pospoisson
,
poissonff
,
dzipois
.phi = 0.35; lambda = 2 # Generate some artificial data
y = rzipois(n <- 1000, lambda, phi)
table(y)
# Two equivalent ways of fitting the same model
fit1 = vglm(y ~ 1, yip88(n = length(y)), subset = y > 0, trace = TRUE)
fit2 = vglm(y ~ 1, yip88, trace = TRUE, crit = "c")
(true.mean = (1-phi) * lambda)
mean(y)
head(fitted(fit1))
fit1@misc$phi # The estimate of phi
# Compare the ZIP with the positive Poisson distribution
pp = vglm(y ~ 1, pospoisson, subset = y > 0, trace = TRUE, crit = "c")
coef(pp)
Coef(pp)
coef(fit1) - coef(pp) # Same
head(fitted(fit1) - fitted(pp)) # Different
# Another example (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, yip88(n = length(yy)), subset = yy > 0, trace = TRUE)
fit3@misc$phi # Estimate of phi (they get 0.5154 with SE 0.0707)
coef(fit3, matrix = TRUE)
Coef(fit3) # Estimate of lambda (they get 0.6997 with SE 0.1520)
head(fitted(fit3))
mean(yy) # Compare this with fitted(fit3)
Run the code above in your browser using DataLab