Fits a generalized linear mixed-effects 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 = 5e-5, verbose = FALSE, nb.control = NULL,
initCtrl = list(limit = 20, eps = 2*tol, trace = verbose,
theta = NULL))
An object of class glmerMod
, for which many
methods are available (e.g. methods(class="glmerMod")
), see
glmer
.
arguments as for glmer(.)
such as formula
,
data
, control
, etc, but not family
!
interval in which to start the optimization. The default is symmetric on log scale around the initially estimated theta.
tolerance for the optimization via optimize
.
logical
indicating how much
progress information should be printed during the optimization. Use
verbose = 2
(or larger) to enable verbose=TRUE
in the
glmer()
calls.
optional list
, like the output of glmerControl()
,
used in refit(*, control = control.nb)
during the
optimization (control
, if included in ...
,
will be used in the initial-stage glmer(...,family=poisson)
fit, and passed on to the later optimization stages as well)
(experimental, do not rely on this:) a
list
with named components as in the default, passed to
theta.ml
(package MASS) for the initial
value of the negative binomial parameter theta
.
May also include a theta
component, in which case the
initial estimation step is skipped
glmer
; from package MASS,
negative.binomial
(which we re-export 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:
if (FALSE) {
m.glm <- glm.nb(y ~ f1*f2, data=dd, trace=TRUE)
summary(m.glm)
m.nb <- glmer.nb(y ~ f1*f2 + (1|g), 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
}
Run the code above in your browser using DataLab