`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`

).

## How to fix Overdispersion

Overdispersion can be fixed by either modeling the dispersion parameter, or
by choosing a different distributional family (like Quasi-Poisson, or
negative binomial, see *Gelman and Hill (2007), pages 115-116*).

## References

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

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

## See also

Other functions to check model assumptions and and assess model quality:
`check_autocorrelation()`

,
`check_collinearity()`

,
`check_convergence()`

,
`check_heteroscedasticity()`

,
`check_homogeneity()`

,
`check_model()`

,
`check_outliers()`

,
`check_predictions()`

,
`check_singularity()`

,
`check_zeroinflation()`

## Examples

```
library(glmmTMB)
data(Salamanders)
m <- glm(count ~ spp + mined, family = poisson, data = Salamanders)
check_overdispersion(m)
#> # Overdispersion test
#>
#> dispersion ratio = 2.946
#> Pearson's Chi-Squared = 1873.710
#> p-value = < 0.001
#>
#> Overdispersion detected.
m <- glmmTMB(
count ~ mined + spp + (1 | site),
family = poisson,
data = Salamanders
)
check_overdispersion(m)
#> # Overdispersion test
#>
#> dispersion ratio = 2.324
#> Pearson's Chi-Squared = 1475.875
#> p-value = < 0.001
#>
#> Overdispersion detected.
```