Solved – Checking for overdispersion in a Poisson model

overdispersionpoisson distribution

I've run the following multilevel poisson regression:

> ambiglme4 <- glmer(AmbigCount ~ Posn.c*Valence.c + (Valence.c|mood.c/Chain), data = FinalData_forpoisson, family = poisson(link = "log"), control = glmerControl(optimizer = "bobyqa", check.conv.grad = .makeCC("warning", 0.05)))
> summary(ambiglme4)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
 Family: poisson  ( log )
Formula: AmbigCount ~ Posn.c * Valence.c + (Valence.c | mood.c/Chain)
   Data: FinalData_forpoisson
Control: glmerControl(optimizer = "bobyqa", check.conv.grad = .makeCC("warning",      0.05))

     AIC      BIC   logLik deviance df.resid 
   943.1    989.2   -461.6    923.1      726 

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-1.0106 -0.4791 -0.2481 -0.0211  7.6527 

Random effects:
 Groups       Name        Variance  Std.Dev.  Corr
 Chain:mood.c (Intercept) 0.000e+00 0.000e+00     
              Valence.c   1.967e-12 1.402e-06  NaN
 mood.c       (Intercept) 0.000e+00 0.000e+00     
              Valence.c   6.576e-13 8.109e-07  NaN
Number of obs: 736, groups:  Chain:mood.c, 92; mood.c, 2

Fixed effects:
                 Estimate Std. Error z value Pr(>|z|)    
(Intercept)      -1.68128    0.11397 -14.752  < 2e-16 ***
Posn.c           -1.07585    0.08775 -12.260  < 2e-16 ***
Valence.c         0.89698    0.22795   3.935 8.32e-05 ***
Posn.c:Valence.c  0.47985    0.17550   2.734  0.00625 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Correlation of Fixed Effects:
            (Intr) Posn.c Vlnc.c
Posn.c       0.831              
Valence.c   -0.508 -0.461       
Psn.c:Vlnc. -0.461 -0.454  0.831

I want to check for overdispersion in the model and came across the aods3 package and the gof function, which I used:

> gof(ambiglme4)
D  = 481.9449, df = 726, P(>D) = 1
X2 = 825.0443, df = 726, P(>X2) = 0.006089041

I'm just not sure exactly what the output represents and am having a hard time finding an answer. Is anyone able to help me understand how to interpret this? Also, how might I then report the dispersion in the model in a paper.

Best Answer

I am not familiar with those packages, nor the outputs. However, if you can identify the residual deviance and the residual degrees of freedom in the output, the two should be roughly equal or else over- or under-dispersion may exist.

The only function I am familiar with that tests dispersion is dispersiontest in the AER package. The output is minimal and very clear e.g. gives you what the dispersion value is at what p-value.

Related Question