I am doing binomial GLM using relative abundance, for example: model<-glm(cbind(number_pres,number_abs)~Var1+Var2+Var3+Var4..., family=binomial, data=Data). My sample size is about 700, and I have about 15 explanatory variables. I can't use Poisson because the total number of "trials" varies per sample point (relative abundance account for this), and I'd prefer not to simplify to presence/absence.

My global model is overdispersed (residual deviance/ degrees of freedom = 2.8), and has some funny patterns in the residuals (see below).

Validation plots using R plot(model)

The overdispersion remains whether I add interactions, polynomials, transform variables, remove influential points, remove variables which had VIF ~4 (the highest VIF of the set). Removing the influential point and the highest VIF does seem to help with the residual patterns, but not overdispersion. I can use family=quasibinomial, but then of course many of the variables are no longer significant, and I find this harder to interpret/understand. If possible I'd like to just fix the overdispersion.

Two things I suspect may be causing issues are the high number of zeros in my species data, and something to do with spatial autocorrelation. I did a few tests and spatial autocorrelation of residuals might be a minor issue (in "car" Durbinwatsontest showed reject null of no autocorrelation, but in "gstat" variogram the semivariance hovered around 2-2.5). I repeated the model using presence/absence in a bernouilli glm (overdispersion doesn't exist for bernouilli), there are no residual patterns, and I get similar results when using a zero-inflated binomial glm (package glmmADMB). I have yet to find a zero-inflated model for binomial glm with proportions, but maybe this indicates that zeros aren't the problem either.

Should I just use quasibinomial glms for my model, and the subsequent nested model set? Or is there a solution I am missing?

  • $\begingroup$ You could perhaps use Poisson if you use exposures (via offset); not that I'm specifically recommending that approach, just saying the denial of it as possible is premature. It looks to me like you should use a quasi binomial; the fact that variables are significant when you don't deal with the overdispersion is illusory - p-values are meaningless if the dispersion is larger than for the binomial. You might consider looking at bootstrap intervals but my bet is the results won't change much. ... ctd $\endgroup$
    – Glen_b
    Jul 11, 2015 at 1:43
  • $\begingroup$ ctd ... I don't see strong indication in your displays of much of a problem aside from the heavier-than-normal-tails (binomial would typically be lighter). You might consider dealing with both the heavier tails and the overdispersion via a negative binomial model, but again it probably won't magically produce significance. $\endgroup$
    – Glen_b
    Jul 11, 2015 at 1:50

1 Answer 1


Overdispersion occurs for a number of reasons, but often the case of presence/absence data is because of clustering of observations and correlations between observations.

Taken from Brostrom & Holmberg (2011) Generalised Linear Models with Clustered Data: Fixed and random effects models with glmmML

"Generally speaking, a random effects model is appropriate if the observed clusters may be regarded as a random sample from a (large, possibly infinite) pool of possible clusters. The observed clusters are of no practical interest per se, but the distribution in the pool is. Or this distribution is regarded as a nuisance that needs to be controlled for."


Data$obs <- factor(formatC(1:nrow(Data), flag="0", width = 3))
model.glmm <- glmer(cbind(number_pres,number_abs) ~ Var1+Var2+Var3+Var4...+
(1|obs),family = binomial (link = logit),data = Data) 
overdisp.glmer(model.glmm) #Overdispersion for GLMM
  • $\begingroup$ For an answer you need more explanation and not just an example of a generalized linear mixed model. $\endgroup$ Apr 11, 2017 at 2:03
  • $\begingroup$ I have heard of using observation-level random effects to model overdispersion in GLMs, but this could use some explanation. No one who doesn't already know the answer would get much from what you wrote here. $\endgroup$
    – gammer
    Apr 11, 2017 at 3:15
  • $\begingroup$ If there's no clustering in the data, random effects are still sometimes used to model overdispersion. In that case, they're just there because they add extra variation in the response in GLMs where the variance is fixed by the linear predictor (e.g. binomial, poisson) $\endgroup$
    – gammer
    Apr 11, 2017 at 13:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.