GLMMs for count data shows significant deviation according to DHARMa diagnostics qqplot I am making a GLMM to test for various aspects of grooming in primates. I have made 3 different models for the different species. For 1 of the 3 models, I am getting an issue with the qqplot.
The data fits well with poisson distribution according to diagnose() in glmmTMB (I also ran it with nbinom2 - gives errors, poisson does not).
m3 <- glmmTMB(Groom_giv ~ Grph+Receiver_rank+Rank_diff+
             (1|Group)+(1|Actor)+(1|Receiver)+
             offset(log(Hours)),
           family=poisson,
           data = ER_M)

But the qqplot in DHARMa shows deviation is significant according to both the KS test and the dispersion test.

Going through the FAQs page I found that this might be indicating Underdispersion. And looking at he coefficient estimates I believe it might be the case.
 Family: poisson  ( log )
Formula:          Groom_giv ~ Grph + Receiver_rank + Rank_diff + (1 | Group) +      (1 | Actor) + (1 | Receiver) + offset(log(Hours))
Data: ER_M

     AIC      BIC   logLik deviance df.resid 
   275.0    293.5   -130.5    261.0       97 

Random effects:

Conditional model:
 Groups   Name        Variance  Std.Dev. 
 Group    (Intercept) 2.577e-12 1.605e-06
 Actor    (Intercept) 6.516e-11 8.072e-06
 Receiver (Intercept) 1.261e-10 1.123e-05
Number of obs: 104, groups:  Group, 4; Actor, 32; Receiver, 32

Conditional model:
                Estimate Std. Error z value Pr(>|z|)    
(Intercept)   -1.9341019  0.1878505 -10.296   <2e-16 ***
Grph           2.0189943  0.1982866  10.182   <2e-16 ***
Receiver_rank -0.0018369  0.0178349  -0.103    0.918    
Rank_diff     -0.0002208  0.0233696  -0.009    0.992    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

I am new to GLMMs, can someone suggest how I should proceed with this model?
 A: Yes, the plot shows underdispersion, i.e. you fit your data much better than expected under a Poisson.
A common reason for underdispersion is overfitting, i.e. your model is too complex. I would have the suspicion that this could be the case, with 68 REs for 104 data points, although your RE SD is very low. Other possible explanations to check for include zero-inflation (best to check by comparing to a ZIP model), non-independence of the data (e.g. temporal autocorrelation, check via DHARMa:: testTemporalAutocorrelation), or that grooming is simply not a Poisson process (which I would also find easy to imagine).
From a technical side, underdispersion is not as concerning as over dispersion, as it will usually bias p-values to the conservative side, but if your goal is to see if there is an effect of rank, you may want to consider a simpler model. If that is not helping, you can move to a distribution for underdispersed count data (e.g. Conway-Maxwell-Poisson, generalized Poisson).
p.s.: glmmTMB::diagnose does not check model fit.
A: Maybe exploring a Quasi-Poisson regression might solve the issue. Nevertheless, be aware that, contrary to overdispersion which is a common problem with methods to deal with, underdispersion might have other impacts and implications about your data.
Take a look at this question for several links that may help you.
