| glmmTMB {glmmTMB} | R Documentation |
Fit models with TMB
glmmTMB(formula, data = NULL, family = gaussian(), ziformula = ~0, dispformula = ~1, weights = NULL, offset = NULL, se = TRUE, verbose = FALSE, doFit = TRUE, control = glmmTMBControl())
formula |
combined fixed and random effects formula, following lme4 syntax |
data |
data frame |
family |
family (variance/link function) information; see |
ziformula |
a one-sided (i.e., no response variable) formula for
zero-inflation combining fixed and random effects:
the default |
dispformula |
a one-sided formula for dispersion containing only fixed effects: the
default |
weights |
weights, as in |
offset |
offset |
se |
whether to return standard errors |
verbose |
logical indicating if some progress indication should be printed to the console. |
doFit |
whether to fit the full model, or (if FALSE) return the preprocessed data and parameter objects, without fitting the model |
control |
control parameters; see |
binomial models with more than one trial (i.e., not binary/Bernoulli)
can either be specified in the form prob ~ ..., weights = N or in
the more typical two-column matrix (cbind(successes,failures)~...) form.
in all cases glmmTMB returns maximum likelihood estimates - random effects variance-covariance matrices are not REML (so use REML=FALSE when comparing with lme4::lmer), and residual standard deviations (sigma) are not bias-corrected. Because the df.residual method for glmmTMB currently counts the dispersion parameter, one would need to multiply by sqrt(nobs(fit)/(1+df.residual(fit))) when comparing with lm ...
by default, vector-valued random effects are fitted with
unstructured (general positive definite) variance-covariance matrices.
Structured variance-covariance matrices can be specified in
the form struc(terms|group), where struc is one
of
diag (diagonal, heterogeneous variance)
ar1 (autoregressive order-1, homogeneous variance)
cs (compound symmetric, heterogeneous variance)
ou (* Ornstein-Uhlenbeck, homogeneous variance)
exp (* exponential autocorrelation)
gau (* Gaussian autocorrelation)
mat (* Matérn process correlation)
toep (* Toeplitz)
(note structures marked with * are experimental/untested)
(m1 <- glmmTMB(count~ mined + (1|site),
zi=~mined,
family=poisson, data=Salamanders))
summary(m1)
## Zero-inflated negative binomial model
(m2 <- glmmTMB(count~spp + mined + (1|site),
zi=~spp + mined,
family=nbinom2, Salamanders))
## Hurdle Poisson model
(m3 <- glmmTMB(count~spp + mined + (1|site),
zi=~spp + mined,
family=truncated_poisson, Salamanders))
## Binomial model
data(cbpp, package="lme4")
(tmbm1 <- glmmTMB(cbind(incidence, size-incidence) ~ period + (1 | herd),
data=cbpp, family=binomial))
## Dispersion model
sim1=function(nfac=40, nt=100, facsd=.1, tsd=.15, mu=0, residsd=1)
{
dat=expand.grid(fac=factor(letters[1:nfac]), t= 1:nt)
n=nrow(dat)
dat$REfac=rnorm(nfac, sd= facsd)[dat$fac]
dat$REt=rnorm(nt, sd= tsd)[dat$t]
dat$x=rnorm(n, mean=mu, sd=residsd) + dat$REfac + dat$REt
return(dat)
}
set.seed(101)
d1 = sim1(mu=100, residsd =10)
d2 = sim1(mu=200, residsd =5)
d1$sd="ten"
d2$sd="five"
dat = rbind(d1, d2)
m0 = glmmTMB(x~sd+(1|t), dispformula=~sd, dat)
fixef(m0)$disp
c(log(5^2), log(10^2)-log(5^2)) #expected dispersion model coefficients