[R] fitted.values from zeroinfl (pscl package)
Sarah J Thomas
sarah.thomas at rice.edu
Mon Feb 18 07:50:21 CET 2008
Hello all:
I have a question regarding the fitted.values returned from the
zeroinfl() function. The values seem to be nearly identical to those
fitted.values returned by the ordinary glm(). Why is this, shouldn't
they be more "zero-inflated"?
I construct a zero-inflated series of counts, called Y, like so:
b= as.vector(c(1.5, -2))
g= as.vector(c(-3, 1))
x <- runif(100) # x is the covariate
X <- cbind(1,x)
p <- exp(X%*%g)/(1+exp(X%*%g))
m <- exp(X%*%b) # log-link for the mean process
# of the Poisson
Y <- rep(0, 100)
u <- runif(100)
for(i in 1:100) {
if( u[i] < p[i] ) { Y[i] = 0 }
else { Y[i] <- rpois(1, m[i]) }
}
# now let's compare the fitted.values from zeroinfl()
# and from glm()
z1 <- glm(Y ~ x, family=poisson)
z2 <- zeroinfl(Y ~ x|x) #poisson is the default
z1$fitted.values[1:20]
#1.3254209 0.7458029 2.0300505 1.1292954 1.4512862 #0.6513798 1.8980126
0.6558228 1.5302057
#0.6993626 2.6875736 0.7586985 2.0622238 2.1009979 #1.4254607 1.8130159
3.6603137 2.1330030
#2.9409379 3.3203350
z2$fitted.values[1:20]
#1.3587457 0.7254296 2.0730982 1.1497492 1.4902778 #0.6178648 1.9429778
0.6229478 1.5717923
#0.6726527 2.7010395 0.7400369 2.1045779 2.1424025 #1.4634459 1.8583877
3.5830697 2.1735319
#2.9354839 3.2800839
You can see that they are almost identical... and the fitted.values from
zeroinfl don't seem to be zero-inflated at all! What is going on?
Ultimately I want these fitted.values for a goodness of fit type of test
to see if the zeroinfl model is needed or not for a given data series.
With these fitted.values as they are, I am rejecting assumption of a
zero-inflated model even when the data really are zero-inflated.
many thanks,
Sarah Thomas
--
Sarah J. Thomas
Research Assistant, Department of Statistics
Rice University, Houston, TX
More information about the R-help
mailing list