`check_overdispersion()`

checks generalized linear (mixed)
models for overdispersion.

## Arguments

- x
Fitted model of class

`merMod`

,`glmmTMB`

,`glm`

, or`glm.nb`

(package MASS).- ...
Currently not used.

## Value

A list with results from the overdispersion test, like chi-squared statistics, p-value or dispersion ratio.

## Details

Overdispersion occurs when the observed variance is higher than the variance of a theoretical model. For Poisson models, variance increases with the mean and, therefore, variance usually (roughly) equals the mean value. If the variance is much higher, the data are "overdispersed".

### Interpretation of the Dispersion Ratio

If the dispersion ratio is close to one, a Poisson model fits well to the data. Dispersion ratios larger than one indicate overdispersion, thus a negative binomial model or similar might fit better to the data. A p-value < .05 indicates overdispersion.

### Overdispersion in Poisson Models

For Poisson models, the overdispersion test is based on the code from Gelman and Hill (2007), page 115.

### Overdispersion in Mixed Models

For `merMod`

- and `glmmTMB`

-objects, `check_overdispersion()`

is based on the code in the
GLMM FAQ,
section *How can I deal with overdispersion in GLMMs?*. Note that this
function only returns an *approximate* estimate of an overdispersion
parameter, and is probably inaccurate for zero-inflated mixed models (fitted
with `glmmTMB`

).

## References

Bolker B et al. (2017): GLMM FAQ.

Gelman, A., & Hill, J. (2007). Data analysis using regression and multilevel/hierarchical models. Cambridge; New York: Cambridge University Press.

## Examples

```
if (require("glmmTMB")) {
data(Salamanders)
m <- glm(count ~ spp + mined, family = poisson, data = Salamanders)
check_overdispersion(m)
m <- glmmTMB(
count ~ mined + spp + (1 | site),
family = poisson,
data = Salamanders
)
check_overdispersion(m)
}
#> Loading required package: glmmTMB
#> # Overdispersion test
#>
#> dispersion ratio = 2.324
#> Pearson's Chi-Squared = 1475.875
#> p-value = < 0.001
#>
#> Overdispersion detected.
```