# How to fix an overdispersion in a Poisson GLMM with glmer function in R?

I want to model counts as being dependent on two nominal variables, one continuous variable (all as fixed effects) with 3rd-order interactions and one grouping variable (as random effect). However, I have an overdispersion in outcomes (I used the glmer function from lme4 library). How should I manage this? I have found some solution for the problem (https://stats.stackexchange.com/a/9670/38080) but I am not able to incorporate that recommendation into my model.

Here is my model:

m1<-glmer(dependent.var ~ cat.var1 * cat.var2 * contin.var + (1|group),
data = dat, family = "poisson")


Any suggestion? (I did it also like a marginal model with 'geeglm' function (library geepack), but I would like to calculate R-squared of the model, which is possible to obtain just from former GLMM (see Nakagawa & Schielzeth 2013; http://onlinelibrary.wiley.com/doi/10.1111/j.2041-210x.2012.00261.x/abstract).)

• Can you expand on the statement that you were not able to incorporate the recommendation of including (1|subject_id) ? Jan 28, 2014 at 14:33
• Number of measured subjects in my dataset is equal to number of observations or records in the dataset. Thus I do not know if I should incorporate both (1|subject_id) and 'data\$obs_effect<-1:nrow(data)'... Jan 28, 2014 at 14:39
• You can call it subject_id or obs_effect - they are the same thing in your case. Include one of them, and any other fixed and random effects you need. Jan 28, 2014 at 14:49
• I did it like this: m1<-lmer(dependent.var ~ 1 + cat.var1 * cat.var2 * contin.var + (1|obs_effect) + (1|group), data = dat, family = "poisson"), and also like this: m1<-lmer(dependent.var ~ 1 + obs_effect + cat.var1 * cat.var2 * contin.var + (1|obs_effect) + (1|group), data = dat, family = "poisson") but in both cases the model residuals ('plot(fitted, residuals)') were not OK at all (they formed a triangle)... Jan 28, 2014 at 14:59
• @BenBolker Here are posted my data: docs.google.com/file/d/0Bz8ojhHeiNclVi1oT0ZwTEtEN2s/edit Jan 29, 2014 at 6:37

Pulling out the answer from the discussion in the comments: If you create an obs_effect variable (observation-level random effect) with a unique value for each observation (say, 1:nrow(dat)), then you can incorporate overdispersion in the model by fitting
m2 <- glmer(dependent.var ~  cat.var1 * cat.var2 * contin.var + (1|obs_effect) + (1|group),

You also state in the comments that your problem is that the residual plot is triangle-shaped, which I interpret as the variability of the residuals increases with the predicted value. Depending on what kind of residuals you are plotting, this might mean nothing (the variability of observed - fitted should increase with fitted), or might mean that you have a problem other than overdispersion, which does not show up in a residual plot.