# S3 method for glmmTMB
isLMM(x, ...)
# S3 method for glmmTMB
refit(object, newresp, ...)
a fitted glmmTMB object
additional arguments (for generic consistency; ignored)
a fitted glmmTMB object
a new response vector
These methods are still somewhat experimental (check your results carefully!), but they should allow parametric bootstrapping. They work by copying and replacing the original response column in the data frame passed to glmmTMB
, so they will only work properly if (1) the data frame is still available in the environment and (2) the response variable is specified as a single symbol (e.g. proportion
or a two-column matrix constructed on the fly with cbind()
. Untested with binomial models where the response is specified as a factor.
if (requireNamespace("lme4")) {
if (FALSE) {
fm1 <- glmmTMB(count~mined+(1|spp),
ziformula=~mined,
data=Salamanders,
family=nbinom1)
## single parametric bootstrap step: refit with data simulated from original model
fm1R <- refit(fm1, simulate(fm1)[[1]])
## the bootMer function from lme4 provides a wrapper for doing multiple refits
## with a specified summary function
b1 <- lme4::bootMer(fm1, FUN=function(x) fixef(x)$zi, nsim=20, .progress="txt")
if (requireNamespace("boot")) {
boot.ci(b1,type="perc")
}
## can run in parallel: may need to set up cluster explicitly,
## use clusterEvalQ() to load packages on workers
if (requireNamespace("parallel")) {
cl <- parallel::makeCluster(2)
parallel::clusterEvalQ(cl, library("lme4"))
parallel::clusterEvalQ(cl, library("glmmTMB"))
b2 <- lme4::bootMer(fm1, FUN = function(x) fixef(x)$cond,
nsim = 10, ncpus = 2, cl = cl, parallel = "snow")
}
}
}