[R-sig-ME] overdispersion estimation in a binomial GLMM
Thomas Merkling
Thomas.Merkling at cict.fr
Fri Jan 21 17:11:54 CET 2011
Thanks to Robert and Ben for their precious answers !
I tried the dispersion function it works and gives me a 1.244403 value.
As it is not really bigger than 1, should I treat my model as
overdispersed ?
Moreover I tried to fit an observation level random effect as suggested
by Ben Bolker, but it gives me an error message !
dispersion_glmer(model)# 1.244403
baba$obs <- 1:nrow(baba)
model_OD <-
+ glmer(propNb~SexA*SexB*AgeA+(1|Nest)+(1|obs),data=baba,family="binomial")
Number of levels of a grouping factor for the random effects
is *equal* to n, the number of observations
So what is the problem with this ?
Thanks a lot !!
Thomas Merkling
Le 20:59, Ben Bolker a écrit :
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 01/20/2011 11:40 AM, espesser wrote:
>>
>> Here is a small function to compute the dispersion of
> a binomial model, according to a previous answer of D. Bates on the
> topic:
>
> dispersion_glmer<- function(modelglmer)
> {
>
> ## computing estimated scale ( binomial model)
> #following D. Bates :
> #That quantity is the square root of the penalized residual sum of
> #squares divided by n, the number of observations, evaluated as:
>
> n<- length(modelglmer at resid)
>
> return( sqrt( sum(c(modelglmer at resid, modelglmer at u) ^2) / n ) )
> }
>
>
>
> - --
> Robert Espesser
> CNRS UMR 6057 - Université de Provence
> 5 Avenue Pasteur - BP 80975
> 13604 AIX-EN-PROVENCE Cedex 1
>
> Tel: +33 (0)442 95 36 26
>
>> Le 20/01/2011 16:59, Thomas Merkling a écrit :
>>> Dear list members,
>>>
>>> I am trying to fit a binomial GLMM and I wonder if there is
>>> overdispersion. I'm not sure to know how to do it. I tried to fit with
>>> "quasibinomial" family but apparently it doesn't exist anymore in lme4.
>>>
>>> I also tried this but I am not sure that it is true for mixed models.
>>>
>>> model<-lmer(propNb~SexA*SexB*AgeA+(1|Nest),data=baba,family="binomial")
>>>
>>> k<- attr(logLik(model),"df") #
>>> n<- length(fitted(model))
>>> pearsonresid<- (1/(n-k)) * sum(resid(model,"pearson")2) # 1.731892
>>> dev<- deviance(model)/(n-k) #2.378512
>>>
>>> One more thing: how to deal with this model if there is overdispersion ?
>>>
>>> Thanks by advance,
>>> Best,
>
> If there is overdispersion, the current advice is to fit an
> observation-level random effect:
>
> baba$obs<- 1:nrow(baba)
>
> model_OD<-
> glmer(propNb~SexA*SexB*AgeA+(1|Nest)+(1|obs),data=baba,family="binomial")
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>
> iEYEARECAAYFAk04eJMACgkQc5UpGjwzenMY6QCfRBLpf0O833WrUChjs8NoLU+F
> 8DgAoJtn+993HtalRUhZTEqtx0ej83s7
> =jtDV
> -----END PGP SIGNATURE-----
>
>
--
Thomas Merkling, Doctorant (PhD Student)
Laboratoire "Evolution et Diversité Biologique" -EDB
UMR 5174 - bât 4R3 b2 - bureau 226
Université Paul Sabatier Toulouse 3
118, route de Narbonne
31062 TOULOUSE Cedex O9, FRANCE
Tél: 33 5-61-55-67-58
Fax: 33 5-61-55-73-27
More information about the R-sig-mixed-models
mailing list