OK. I have wrote to Jarrod Hadfield (the MCMCglmm package author).
His reply was:
/MCMCglmm only fits over-dispersed models. This is for two reasons a)
real data is over dispersed and b) the algorith is written such that the
chain wil fail to mix when the "residual" variance is zero. You can fit
the standard over-dispersed Poisson as
model<-MCMCglmm(count~ta*habitat*season*moon,
random=~individual_id+position, data=countdata, family="poisson")
this will soak up extra-Poisson variation modeled as log-normal. If
there are still excess zeros you can try the zero-inflated models, which
will look something like this:
prior=list(R=list(V=diag(2),n=2, fix=2), G=list(G1=list(V=diag(2), n=2),
G2=list(V=diag(2), n=2)))
model<-MCMCglmm(count~trait:ta*habitat*season*moon-1,
random=~idh(trait):individual_id+idh(trait):position,
rcov=~idh(trait):units, data=countdata, family="zipoisson", prior=prior)
zipoisson models are treated as a bivariate model with two "traits". The
first is the over-dispersed Poisson process and the second is the binary
zero-inflation. These "traits" are coded by the reserve variable trait
such that the interaction in the fixed terms models the effects of ta
and habutat etc. on zero-inflation and the Poisson counts separately.
Use prior$B to set effects to zero if need be. The idh(trait) fits a
2X2 matrix with diagonals only. this means the variance due to position
is estimated separately for zero-inflation and the Poisson counts. you
can use us(trait) to explicitly estimate the covariance between the two
processes. ~idh(trait):units fits the residual term for which it is
generally advisable NOT to use the us() function because there is no
information in the data to estimate the covariance from, unless you use
an informative prior. fix=2 in the prior argument fixes the residual
variance of the zero-inflation process (at one in this case). Again,
this is because there is no information in the data regarding the
residual variance of zero-inflation (as with standard binary variable).
Simon Blomberg has tried fitting zipoisson models in MCMCglmm so may be
he can give some advice. I urge you to put this on the mixed model list
so other uses can get a chance to see the discussion. Feel free to put
any of this there.
/
I have followed his suggestion and run the poisson model. Now I'm trying
to check if there are still excess zeros. How can I check if there are
still excess zeros? How do I validate the model using plots of
residuals? What are the options of constructing p-values from the model
object?
Thanks again for the help. I hope this thread will help others.
Ofir.
> Ofir--
>
> I am fairly certain that you can not fit a zero-inflated model using
> glmer() (and I am not familiar with the fmr function).
>
> As for whether you *need* a zero-inflated or negative binomial, there is
> evidence for over-dispersion (assuming we can trust the sigma reported
> in the quasipoisson, which I believe Doug Bates said might be suspect...).
>
> One option could be to use the MCMCglmm package. It fits a broad class
> of generalized linear mixed models from a Bayesian perspective using
> Markov Chain Monte Carlo (MCMC) methods.
>
> If you look at its family argument, you will see that it can fit a
> zero-inflated Poisson.
>
> I have just started using it myself and have found it very intuitive.
> Of course, it would help tremendously to have some familiarity with
> Bayesian statistics and the basics of MCMC fitting methods.
>
> Jarrod Hadfield (the package author) may be able to provide more direct
> comments on what the call to MCMCglmm might look like for a
> zero-inflated Poisson (and perhaps a quasi-Poisson? ideally, it would be
> nice to test a succession of models re. over-dispersion).
>
> See the tutorial vignette in the MCMCglmm package for an introduction.
>
> Hope that helps.
>
> cheers, Dave
>
>
[[alternative HTML version deleted]]