[R-sig-ME] over-dispersed Poisson with lmer -- a trick, with a catch?

David Atkins datkins at u.washington.edu
Thu Jul 16 18:01:15 CEST 2009

Hi all--

I'm currently working on analyses of longitudinal count data (number of 
drinking related problems over 2 years in a randomized trial for alcohol 

The data are pretty clearly over-dispersed relative to Poisson, which is 
  clear when I fit the model using MCMCglmm, which includes a residual 
error term to account for over-dispersion (thank you, Jarrod!).

However, I'm collaborating with a colleague who uses Stata.  He 
mentioned that Sophia Rabe-Hesketh in her mixed-models book discusses 
fitting over-dispersed Poisson mixed-effects models using the following 

Create a new variable with a unique value for each observation and 
include this as an additional random-effect term.

Basically, this will soak up any residual dispersion, over and above 
that accounted for in Poisson model and other random-effects.  On the 
face of it, it makes sense to me.  Though, we hit a snag in trying to do 
this in lmer().  Using the data that I have been analyzing:

### create new var with unique value for each obs/row
 > snap.df$over <- 1:nrow(snap.df)

### include as separate random-effect in model
 > rapi.glmer2.1 <- glmer(rapisum ~ asex*time + (time|ID) + (1|over),
+ 					data = snap.df, verbose = TRUE,
+ 					family = poisson)
Error in mer_finalize(ans) : q = 5252 > n = 3616

So, we already have a random intercept and slope for time [ie, 
(time|ID)].  With 818 participants the random-effects specify 818 
intercepts plus 818 slopes, and now with an observation level 
random-effect [ie, (1|over)] with 3616 observations... we get 5252 
estimates.  lmer() doesn't like it.

I know there's been a bit of chatter about this error before, and I 
believe Doug mentioned that it was to avoid people radically 
over-parameterizing/over-fitting their data via random-effects.  Though, 
I believe there is some room for debate (ie, the model above does not 
fit 5252 unique parameters).

Anyhow, I would be curious for any input on:

1. Does this seem like a sensible approach to account for 
over-dispersion?  (caveat: I don't have Rabe-Hesketh's book, so just 
going on recounting from colleague)

2. If so, I wonder if we might be able to coax Doug to change the error 
to an argument in the model (that defaults to the error msg but could be 

cheers, Dave

Dave Atkins, PhD
Research Associate Professor
Center for the Study of Health and Risk Behaviors
Department of  Psychiatry and Behavioral Science
University of Washington
1100 NE 45th Street, Suite 300
Seattle, WA  98105
datkins at u.washington.edu

More information about the R-sig-mixed-models mailing list