| NEWS | R Documentation |
glmmTMB News
CHANGES IN VERSION 1.1.13
BUG FIXES
Pearson residual calculation corrected for Beta models (GH #1229, @amdavenport).
NEW FEATURES
new covariance structure
homtoep(homogeneous Toeplitz) has been added (GH #1095, Daniel Sabanés Bové)EXPERIMENTAL implementation of Kenward-Roger and Satterthwaite denominator-degree-of-freedom approximations; see
ddfargument forsummary.glmmTMB,?dof_KR
USER-VISIBLE CHANGES
Log-normal and skew-normal variance models (
family(model)$variance) have been changed to return scaled Pearson residuals; beta-binomial returns unscaled Pearson residuals, with a message (see?residuals.merMod)
CHANGES IN VERSION 1.1.12 (2025-08-18)
BUG FIXES
default value for
allow.new.levelsinpredict.glmmTMBis now NULL, meaning that new levels in grouping variables are allowed when predicting at the population level (i.e.,re.formisNAor~0) - unlessallow.new.levelsis explicitly set to TRUE (GH#1189, @fisher-j)implementation of
hetar1covstruct was wrong, fixed now (GH #1204, Daniel Sabanés Bové and Nik Krieger)prediction on rank-deficient X matrices could throw a false positive error (Erin McCallum, https://stackoverflow.com/q/77517125/190277)
-
predictmethod no longer fails on subsets of data involving ordered factors (resolving an issue comparing contrasts associated with factors in original data andnewdata) (GH #1197, @fisher-j); we no longer check contrasts of factors that appear only as grouping variables
NEW FEATURES
robust sandwich covariance matrix
vcovHChas been added forglmmTMBobjects, please see the Model evaluation vignette for details (GH #443, Daniel Sabanés Bové)new argument
full_corrforglmmTMBControlto enable/disable computation and storage of full correlation matrices for random effect terms (helps with GH#995)
USER-VISIBLE CHANGES
improved formatting of random effects standard deviations/variances/correlation matrices
mismatches in contrasts between original data and prediction data now throw a warning rather than an error (related to GH #1197)
CHANGES IN VERSION 1.1.11 (2025-04-02)
NEW FEATURES
-
glmmTMBgains asubsetargument (GH #1128, @strengejacke) added a heterogeneous-variance AR1 (
hetar1) covariance structure (GH #1095) (experimental, still prints badly)added the Bell distribution (
bell()) as in Castellares et al. 2018 doi:10.1016/j.apm.2017.12.014 (Hatice Tül Kübra Akdur)added aggregated predictions with bias correction as in Kindt-Larsen, Glemerec, et al. 2023 doi:10.1098/rspb.2022.2570 and Thorson & Kristensen 2016 doi:10.1016/j.fishres.2015.11.016
BUG FIXES
likelihood profiling now works for models with mapped parameters
-
glmmTMBno longer changes the order of terms in fixed-effect model matrices (GH #1122, @dongwenluo). Note that this bug fix will change the order of results (parameter vectors) in some cases. -
vcov()behaviour improved for models with mapped parameters, especially the case where parameters are set equal rather than fixed to starting values (e.g.map = list(beta = factor(c(1,1)))) (GH #1120, @DrJerryTAO) fixed newly introduced bug in Pearson residuals for zero-inflated models (GH #1101, @strengejacke)
fix bug in 'exotic' families (those such as truncated distributions using the internal
make_familyhelper function) that caused errors when callingeffects::Effect()(GH #1133, @strengejacke)fixed bug blocking reduced-rank models with binomial response (GH #1151, @toddvogel1628)
fixed minor bug with
confintapplied to models with random effects in the dispersion model
USER-VISIBLE CHANGES
headline of
printandsummaryoutput now labels the minimum of the objective function (correctly) as "-2*log(L)" rather than "deviance" (GH #1156, @ladin100)
CHANGES IN VERSION 1.1.10 (2024-09-26)
NEW FEATURES
added random effect structure propto to fit multivariate random effects proportional to a known variance-covariance matrix. This feature is EXPERIMENTAL; please post any problems at https://github.com/glmmTMB/glmmTMB/pull/1068. See
vignette("covstruct")added "nbinom12" family after Lindén and Mäntyniemi (2011)
random effects, including smooth terms with
s(), can now be included in the dispersion model. This feature is EXPERIMENTAL; please post any problems to the issues listadded "skewnormal" family (@psmorris) (EXPERIMENTAL: some manual adjustment of starting values may be required)
-
predict()now offerstype = "latent", which returns the values of the latent variables (with conditional standard deviations ifse.fit = TRUE) now works with automatic parallelization based on the underlying TMBad autodiff library (specify
parallel=list(..., autopar=TRUE)inglmmTMBControlor setoptions(glmmTMB.autopar = TRUE))
USER-VISIBLE CHANGES
the name of the vector of fixed-effect parameters for the dispersion model has changed from
betadtobetadisp; code that specifies parameter values (e.g. as part of astartargument or innewparamsforsimulate_new) may need to be adjusted. (For developers: There are similar name changes to other internal model components, e.g.XdbecomesXdisp.)
BUG FIXES
fixed bug in
simulate_newforfamily = "beta_family"simulation now works for models fitted with the (scaled) t distribution (GH #1024)
-
vcovworks better for cases wheremapis used to fix sets of parameters equal to each other fix printing bug for zero-inflation covariance matrices (SO 78393784)
-
up2datenow works for models with mapped parameters (GH #874) -
ranef()now works properly for reduced-rank models Pearson residuals now work for models with non-trivial dispersion components (GH #1053)
bug fixes to
get_cor(),put_cor()utility functions-
mgcvsmooths with no unpenalized components (e.g.s(..., bs = "sos")) now work better calculation of
df.residualwhenREML=TRUE(#1039)=
OTHER CHANGES
now imports random effect machinery from the
reformulaspackage rather than fromlme4
CHANGES IN VERSION 1.1.9 (2024-03-20)
USER-VISIBLE CHANGES
the underlying parameterization of the dispersion for Gaussian models has changed from the variance to the standard deviation scale, with the following user-visible consequences:
results of fitting Gaussian models may change slightly, especially for unstable fits
stored model objects need to have their
betadispparameters halved for consistency: useup2date(..., adjust_gauss_disp = TRUE)parameter estimates for dispersion components will change, e.g. from
fixef(.)$disporconfint()for models with dispersion componentsany operations that directly handle dispersion parameters (e.g.
offsetterms for dispersion models) should be specified on the SD rather than the variance scale
interpretation of the weights variable for binomial-type GL(M)Ms has changed. Previously, the weights argument was ignored for a vector- (rather than matrix-valued) numeric response, if all observations were either 0 or 1. Now the weights variable is multiplied by the resonse variable to compute the number of successes (consistently with
stats::glm(., family = "binomial")). (This change makes it easier to use weights to specify the number of trials per observation forsimulate_new().)-
simulate_newgives useful warning and error messages about unrecognized parameter names and length mismatches (length mismatches previously gave only a warning)
NEW FEATURES
lognormal-hurdle models now work (i.e., zero values can occur in the response if
ziformulais specified)better checking for illegal (negative or non-integer) values in response variables
experimental support for priors: see
?priorsandvignette("priors", package = "glmmTMB")
BUG FIXES
predictions now work when
weightsvariables have attributes (GH #977)
CHANGES IN VERSION 1.1.8 (2023-10-07)
NEW FEATURES
"lognormal" family available (log-Normal, parameterized by the mean and standard deviation on the data scale)
an experimental implementation of penalized splines (and related smooth terms) is available, based on
mgcv. See the example usingsin?glmmTMB. Constructive feedback welcome at https://github.com/glmmTMB/glmmTMB/issues/928population-level prediction with new data no longer requires that the variables involved in the random effects be explicitly specified as
NA(GH #923, Russ Lenth)the
simulatemethod now works for models fitted withfamily=ordbetareg(GH #942, Daniel Lüdecke)deviance residuals are now available for some families (built-in families from base R (see
?family) plusnbinom1,nbinom2); deviance residuals for other families may be implemented on request.setting
option(glmmTMB_openmp_debug=TRUE)will produce debugging output about the number of OpenMP threads used-
getME(., "b")returns the vector of conditional modes (BLUPs, in the case of linear mixed models)
USER-VISIBLE CHANGES
changes related to handling rank-deficient fits:
default value of
rank_checkinglmmTMBControlchanged to "adjust" (i.e., rank-deficient columns of fixed-effect model matrices are automatically dropped, with a message, by default)the
include_mappedargument ofvcovandconfintis changed toinclude_nonest, controlling both mapped parameters and those dropped due to rank-deficiency, and is nowTRUEby default forvcov-
model.matrixnow returns the fixed-effect model matrix actually used in fitting (including dropping columns for rank-deficiency)
-
glmmTMBnow accepts single-column matrices (e.g. as produced byscaleas response variables (GH #937, @santoshbs)
CHANGES IN VERSION 1.1.7 (2023-04-05)
-
up2date()adds a dispersion component to family objects where required, for compatibility when checking stored fits across R versions
CHANGES IN VERSION 1.1.6 (2023-03-19)
BUG FIXES
fix bug in diagnose for Tweedie, other models with 'psi' parameter (@nalimilan, GH #135)
NEW FEATURES
added a
doOptimargument tofitTMB, to return the constructed TMB object without fitting the parametersnew (experimental) function
simulate_new, to simulate from a formula, list of parameters, and covariate data (rather than from a fitted object)-
emmeans.glmmTMBmethod adds two options for thecomponentargument: "response" and "cmean", corresponding totype = "response"andtype = "conditional"inpredict.glmmTMB(Russ Lenth) new covariance structure
homdiag(homogeneous diagonal; the existing diagonal covariance structure,diag, assumes heterogeneous variances)
USER-VISIBLE CHANGES
The
emmeansmethod for glmmTMB fits now returns infinite "df" (i.e., normal- rather than t-based CIs and tests) for non-Gaussian families, consistent withglmand other packages (GH #893)
CHANGES IN VERSION 1.1.5 (2022-11-16)
BUG FIXES
improve predict-handling of complex bases (GH #632, #845, #853)
all standard deviations are now printed in output for models using
cs()(GH #851)corrected conditional and response predictions for truncated distributions (GH #634, #860, #873)
-
ranef()now works correctly for families with extra parameters (Tweedie etc.) (GH #870)
USER-VISIBLE CHANGES
glmmTMB has switched to using a different (newer, under active development) autodifferentiation library under the hood (from
CppADtoTMBad). This is likely to lead to small changes in estimates, including tipping marginally stable computations to instability or vice versa (e.g. presence or absence of convergence warnings, positive-definite Hessian warnings,NaNvalues of standard errors, etc.) You can revert to using the older autodiff engine by commenting out the linePKG_CPPFLAGS = -DTMBAD_FRAMEWORKinsrc/Makevarsand reinstalling the package (make sure to delete .o/.so files from thesrcdirectory first if installing from the package directory, as the Makefile doesn't recognize know that this change requires recompilation).glmmTMB now warns if fixed-effect model matrices are rank deficient (i.e., perfectly collinear predictors); this warning can be suppressed by setting
glmmTMBControl(rank_check="skip")(rank_check = "stop"will throw an error). Ifrank_check="adjust", glmmTMB will automatically drop appropriate columns from the model matrix (Daniel B. Stouffer)the vector of "extra" family parameters (Tweedie power, Student-t df, etc.) has been renamed from "thetaf" to "psi";
startandmaparguments that set this parameter will need to be changed. Users will need to runup2date()when loading stored model objects from previous versions of the package.-
predictnow warns if extra (ignored) arguments are provided in...
NEW FEATURES
Student-t response distribution is now implemented (see
t_family)ordered beta regression as in Kubinec (2022), for proportion data containing exact 0 and 1 values, is now implemented (
ordbeta)-
glmmTMBControlnow has aconv_checkargument that allows suppressing convergence warnings (the intended use is when these warnings are irrelevant, e.g. when running small examples for testing purposes)
CHANGES IN VERSION 1.1.4 (2022-07-12)
USER-VISIBLE CHANGES
row names of
confintoutput for random effects parameters have changed (new format isStd.Dev. (term) | (grouping variable) for standard deviations,Cor. (term1) . (term2) | (grouping variable) for correlations)
BUG FIXES
-
predict(., "zprob")now returns 0 andpredict(., "zlink")returns-Inffor all observations for models without zero-inflation (GH #798, Brenton Wiernik) [was previously supposed to throw an error, but incorrectly returned conditional values] bug fixes and other improvements for
diagnose(inverted Z-score; now handles models without random effects)-
confintnow works for models with more than one random effect -
confintworks better (although not completely) for models with mapped parameters
NEW FEATURES
now provides Pearson residuals for zero-inflated and variable-dispersion models (Brenton Wiernik)
CHANGES IN VERSION 1.1.3 (2022-03-13)
USER-VISIBLE CHANGES
minor improvements in
diagnose()
BUG FIXES
offset variables with attributes now work properly (previously threw an error; now stripped before being passed to TMB)
-
emmeansmethods now work whencomponentis non-default (GH #780, @rvlenth/@marosteg) -
vcov(., full = TRUE)is now named for models with multiple variance components
NEW FEATURES
implemented working residuals (
residuals(., type = "working"); GH #776, @lionel68)new option
print_trivialfor theprintmethod for fixed effects (fixefobjects); contributed by @d-morrison
CHANGES IN VERSION 1.1.2.3 (2021-09-20)
USER-VISIBLE CHANGES
Double-bar notation (
(x+y||g)) is now translated to a diagonal-covariance term (diag(x+y|g)) rather than being split into separate random effects terms as inlme4. This should not change modeling results, but may change their presentation/ordering/etc.. (This is also a bug fix, as double-bar notation was not working in several previous versions.)-
glmmTMBnow issues a warning when (1)$is used within formulas or (2) thedataargument is not specified (the latter warning can be suppressed by specifyingdata=NULL).
NEW FEATURES
New (experimental) function
up2datefor updating storedglmmTMBfits that were created with an earlier version ofTMBthan the one used whenglmmTMBwas compiled to binary/installed from sourceUtility functions
dtruncnbinom1,dtruncnbinom2,dtruncpoissonfor k-truncated count distributions
CHANGES IN VERSION 1.1.2.2 (2021-09-01)
This is an administrative release (minor revisions for CRAN).
CHANGES IN VERSION 1.1.2 (2021-07-20)
BUG FIXES
resolved OpenMP thread-safety issues on Windows
resolved bug that caused Tweedie models to crash on Solaris
resolved problems with vignettes on Solaris (GH #721)
USER-VISIBLE CHANGES
improved control of OpenMP threading for prediction, profiling etc.
CHANGES IN VERSION 1.1.0 (2021-06-24)
NEW FEATURES
reduced rank covariance for GLVMs implemented by M.McGillycuddy (see covstruct vignette for details)
-
diagnosefunction to investigate potential causes of convergence problems improved parallel processing (GH #620 #652)
truncated nbinom2 family now includes a
variancecomponent
BUG FIXES
-
Anovawithtype="III"now handlescomponentargument correctly, more robust to trivial models fixed a typo/omission in the type-3 Anova method that made zi Anova break in some conditions (GH #674)
fixed bugs/inconsistencies in handling of mapped parameters (GH #678)
-
confintwithparm="beta_"orparm="theta_"now work correctly with more complex models (e.g. including both zero inflation and random effects) (reported by @MKie45 on Stack Overflow) -
confintworks for single-parameter models and those with adispformula(GH #622) mapped (fixed) variables could give incorrect predictions (GH #644)
-
simulateis more robust for truncated_nbinom1 and truncated_nbinom2 (GH #572)
USER-VISIBLE CHANGES
"mapped" parameters (i.e., fixed by user rather than optimized) are now given variances/standard deviations of NA rather than 0 in
vcov(., include_mapped=TRUE)and by extension insummary; hence Z-statistics and P-values will also be NA for these parametersrow ordering has changed in
confintoutput data frames (random effects parameters come last, matching the row/column order invcov(., full=TRUE))new
fastflag for predictions decreases memory use and computational time (only ifnewdata,newparamsnot specified); default infitted()methodimproved robustness of beta-binomial fits (results of fitting such models may change slightly from previous versions)
consistent predictions between link and inverse-link (GH #696)
improved vignette titles
The
emm_basismethod forglmmTMBobjects now accepts a user-specified covariance matrix (vcov.argument)
CHANGES IN VERSION 1.0.2.1 (2020-07-02)
fix documentation links for CRAN checks
CHANGES IN VERSION 1.0.2 (unreleased)
USER-VISIBLE CHANGES
the
refit()function is now re-exported (i.e., you no longer need to loadlme4to use it)a
modelparm.glmmTMBmethod is now provided (so thatmultcomp::glhtshould work out of the box withglmmTMBobjects)
NEW FEATURES
new
sparseXargument to specify sparse fixed-effect model matrices for one or more components
BUG FIXES
-
summaryand model printing now work ifcontrol=glmmTMBControl(optimizer=optim)is used (GH #589) structured covariance models now work in zero-inflation components (GH #579)
documentation of formula for variance in beta family (GH #595)
CHANGES IN VERSION 1.0.1 (2020-03-15)
updated for R-devel changes (R 4.0.0 will set stringsAsFactors=FALSE by default)
CHANGES IN VERSION 1.0.0 (2020-02-03)
The 1.0.0 release does not introduce any major changes or incompatibilities, but signifies that glmmTMB is considered stable and reliable for general use.
NEW FEATURES
new
mapargument toglmmTMBallows for some parameter values to be fixed (see?TMB::MakeADFunfor details)new
optimizerandoptArgsarguments toglmmTMBControlallow use of optimizers other thannlminb-
predictcan make population-level predictions (i.e., setting all random effects to zero). See?predict.glmmTMBfor details. -
beta_familynow allows zero-inflation; newziGammafamily (minor modification ofstats::Gamma) allows zero-inflation (i.e., Gamma-hurdle models)
BUG FIXES
-
vcov(., full=TRUE)(and hence profiling) now work for models withdispformula=~0 Documentation fix: when
family=genpois, the index of dispersion is known as phi^2.-
Anovanow respects thecomponentargument (GH #494, from @eds-slim) -
predictnow works when contrasts are set on factors in original data (GH #439, from @cvoeten) -
bootMernow works with models with Bernoulli responses (even thoughsimulate()returns a two-column matrix in this case) (GH #529, @frousseu) better support for
emmeansapplied to zero-inflation or dispersion models (correct link functions) (Russ Lenth)
USER-VISIBLE CHANGES
-
sigma(.)now returnsNAfor models with non-trivial dispersion models (i.e. models with more than one dispersion parameter) (raised by GH #533, from @marek-tph) -
VarCorrno longer prints residual variances for models withdispformula=~0 the
model.matrix()andterms()methods forglmmTMBobjects have been slightly modified
CHANGES IN VERSION 0.2.3 (2019-01-11)
NEW FEATURES
-
ranefnow returns information about conditional variances (as attributes of the individual random effects terms) by default; this information can easily be retrieved byas.data.frame(ranef(.)). -
coefmethod now available: as inlme4, returns sum of fixed + random effects for each random-effects level. (Conditional variances forcoefnot yet available.) simulate works for models with genpois family
parametric bootstrapping should work, using
bootMerfrom thelme4package as a front end.
BUG FIXES
models with multiple types of RE (e.g. ar1 and us) may have failed previously (GH #329)
-
predictwas not handling data-dependent predictors (e.g.poly,spline,scale) correctly -
profilenow works for models without random effects
USER-VISIBLE CHANGES
The value returned from
simulatefor binomial models is now a non-standard data frame where each element contains a two-column matrix (as in the base-Rsimulatemethod for binomial GLMS).
CHANGES IN VERSION 0.2.2 (2018-07-03)
NEW FEATURES
REML is now an option (GH #352). It is typically only for Gaussian response variables, but can also be useful for some non-Gaussian response variables if used with caution (i.e. simulate a test case first).
USER-VISIBLE CHANGES
Because family functions are now available for all families that have been implemented in the underlying TMB code, specifying the
familyargument as a raw list (rather than as a family function, the name of a family function, or the output of such a function) is now deprecated.
CHANGES IN VERSION 0.2.1 (2018-05-11)
NEW FEATURES
likelihood profiles (via
profile) and likelihood profile confidence intervals (viaconfint(profile(.))) can now be computed;confint(fitted,method="profile")andconfint(fitted,method="uniroot")(find CIs by using a root-finding algorithm on the likelihood profile)offsets are now allowed in the zero-inflation and dispersion formulas as well as in the main (conditional-mean) formula (if
offsetis specified as a separate argument, it applies only to the conditional mean)zero-truncated generalized Poisson
family=truncated_genpoiszero-truncated Conway-Maxwell-Poisson
family=truncated_compois-
predictnow allowstype("link", "response", "conditional", "zprob", "zlink")
BUG FIXES
built-in
betar()family for Beta regression fixed (and name changed tobeta_family()) (GH #278)fixed segfault in predict method when response is specified as two columns (GH #289)
fixed summary-printing bug when some random effects have covariance terms and others don't (GH #291)
fix bugs in binomial residuals and prediction (GH #307)
USER-VISIBLE CHANGES
in
predict.glmmTMB, thezitypeargument has been rolled into the newtypeargument: default prediction type is now "link" instead of "response", in order to matchglm()default