glmer.nb {lme4}  R Documentation 
Fits a generalized linear mixedeffects model (GLMM) for the negative
binomial family, building on glmer
, and initializing via
theta.ml
from MASS.
glmer.nb(..., interval = log(th) + c(3, 3),
tol = 5e5, verbose = FALSE, nb.control = NULL,
initCtrl = list(limit = 20, eps = 2*tol, trace = verbose,
theta = NULL))
... 
arguments as for 
interval 
interval in which to start the optimization. The default is symmetric on log scale around the initially estimated theta. 
tol 
tolerance for the optimization via 
verbose 

nb.control 
optional 
initCtrl 
(experimental, do not rely on this:) a

An object of class glmerMod
, for which many
methods are available (e.g. methods(class="glmerMod")
), see
glmer
.
For historical reasons, the shape parameter of the negative
binomial and the random effects parameters in our (G)LMM models are
both called theta
(\theta
), but are unrelated here.
The negative binomial \theta
can be extracted from a fit
g < glmer.nb()
by getME(g, "glmer.nb.theta")
.
Parts of glmer.nb()
are still experimental and methods are
still missing or suboptimal. In particular, there is no inference
available for the dispersion parameter \theta
, yet.
To fit a negative binomial model with known overdispersion
parameter (e.g. as part of a model comparison exercise, use
glmer
with the negative.binomial
family from the
MASS
package, e.g.
glmer(...,family=MASS::negative.binomial(theta=1.75))
.
glmer
; from package MASS,
negative.binomial
(which we reexport currently) and
theta.ml
, the latter for initialization of
optimization.
The ‘Details’ of pnbinom
for the definition of
the negative binomial distribution.
set.seed(101)
dd < expand.grid(f1 = factor(1:3),
f2 = LETTERS[1:2], g=1:9, rep=1:15,
KEEP.OUT.ATTRS=FALSE)
summary(mu < 5*(4 + with(dd, as.integer(f1) + 4*as.numeric(f2))))
dd$y < rnbinom(nrow(dd), mu = mu, size = 0.5)
str(dd)
require("MASS")## and use its glm.nb()  as indeed we have zero random effect:
## Not run:
m.glm < glm.nb(y ~ f1*f2, data=dd, trace=TRUE)
summary(m.glm)
m.nb < glmer.nb(y ~ f1*f2 + (1g), data=dd, verbose=TRUE)
m.nb
## The neg.binomial theta parameter:
getME(m.nb, "glmer.nb.theta")
LL < logLik(m.nb)
## mixed model has 1 additional parameter (RE variance)
stopifnot(attr(LL,"df")==attr(logLik(m.glm),"df")+1)
plot(m.nb, resid(.) ~ g)# works, as long as data 'dd' is found
## End(Not run)