I am working on a data which contain nearly 80% of zeros and positive counts as large as 7. The dataset is very large, nearly 16,000 cases. It is a health related data. I have fitted ZIP, ZINB and Hurdle models on it with five covariates, same for zero and positive counts. Later I have fitted negative binomial and Poisson on the data for same covariates. All the covariates were significant on each of the models. As I expected, AIC's are much better (I mean lower) for zero inflated models. So, I was happy. Vuong test also confirms the superiority of ZIP, ZINB and Hurdle models over Poisson and negative binomial models. So, I was happier.
Later I estimated the frequency of counts for each models. I used the following codes:
round(colSums(predict(zip, type=""prob))) #zip is the ZIP model and so on for the latter.
round(colSums(predict(zinb, type="prob")))
round(colSums(predict(hurdle, type="prob")))
round(colSums(predprob(poisson)))
round(colSums(predprob(nb)))
and
table(data$TRUE) # this is for the true counts
Poisson and NB has as good estimate as ZIP, ZINB and Hurdle. Even, NB has somewhat better than ZIP. All were very close to the TRUE counts.
Can anyone please tell me what might be the reason? I really liked the ZI models. I simulated data and explored them in various ways. But now I am kind of shocked! By the way, I have used pscl package for ZI models and glm for Poisson and glm.nb for negative binomial model in R.