Can I fit and report this model?
Source:vignettes/capability-and-limits.Rmd
capability-and-limits.RmdUse this page before putting a drmTMB result in a
manuscript. A model that converges may still be outside the part of the
package for which a point estimate, an interval, or both can be
reported. This guide separates those questions and gives a practical
alternative when a model is outside scope.
Terms used on this page
mu is the location parameter: the
family-specific centre of the response. sigma is
scale: residual variability. nu is
shape: a feature beyond location and scale in families
such as Student-t. Coscale includes residual
correlation rho12, the association left between two
responses after their locations and scales are modelled.
sd(group) is among-group random-effect variation, not
residual sigma. phylo() and
spatial() specify phylogenetic and coordinate-structured
random effects. meta_V(V = V) supplies known sampling
covariance; meta_known_V(V = V) is its deprecated
compatibility alias. This page does not use tau, because it
is not a general drmTMB parameter name.
Reader decision path
Use this three-step path when choosing and reporting a model:
- What can the package fit? Start with What can I fit today? to choose a documented family, parameter, and dependence structure.
- What are the important limits? Use the exact reporting checks below before treating a fitted value or interval as a scientific result.
- Which tutorial comes next? Follow the linked family, structured-effect, bivariate, or missing-data tutorial after you have identified the route that matches your question.
Before reporting
Important limits
Start with these four questions:
- Can I fit this exact model? The family, parameter, random-effect shape, and missing-data option all matter.
- Can I report its point estimate? A working extractor alone is not enough.
- Can I report this interval? An available interval is not necessarily calibrated for every dataset.
- What should I do if the answer is no? The sections below name a simpler supported model or a more cautious interpretation.
Before copying a result, run check_drm(fit). Check
convergence, the fixed- effect gradient, and Hessian diagnostics; then
inspect conf.status, profile.boundary, and any
failed bootstrap refits for the interval you plan to report. A printed
interval is not permission to ignore a boundary or failed refit
warning.
Evidence and exact tested scopes
The labels on this page are deliberately plain.
- Point estimate and interval: the stated combination has been checked in the model settings described here. Keep the stated limitation in your report.
- Point estimate only: fitting and recovery of the estimate have been checked, but an interval has not yet been calibrated for that use.
- Feasibility only: the model can be fitted and its result extracted, but it is not a scientific reporting route.
-
Not available:
drmTMBrejects the request or it lies outside the package’s current supported surface. Use the named alternative instead.
These are boundaries, not a hierarchy of scientific importance. A focused, well-supported model is preferable to a more elaborate model whose uncertainty has not been established.
Common reportable models
Fixed effects and ordinary random effects
For ordinary fixed-effect models, binomial, Poisson,
negative-binomial, strict continuous-proportion
(beta_family()), and Gaussian examples have checked Wald
intervals in the tested settings. The strict beta family requires
responses strictly inside (0, 1); use
zero_one_beta() when exact zeroes or ones are meaningful
outcomes. These results do not create a universal minimum sample-size
rule, so retain ordinary convergence and diagnostic checks.
Negative-binomial location–scale models (mu and
sigma ~ x) and strict beta location–scale models have the
same point-and-interval permission for their tested fixed-effect forms.
For the latter, the interior-proportion requirement still applies.
Independent mean-side random slopes are more limited. For binomial, skew-normal, Tweedie, and zero-one-beta models, the selected independent-slope forms have assessed profile intervals under maximum likelihood. Treat that as a narrow permission: use the profile interval only after the model has passed its own diagnostics, do not substitute a Wald interval or make a point-bias claim, and do not generalise it to correlated, labelled, or more complex slopes.
Gaussian structured random effects: selected anchor cells
The most developed structured models are Gaussian ones. Checked
intervals cover a structured Gaussian mean intercept, selected Gaussian
scale effects with one numeric slope, and selected bivariate Gaussian
mean slopes. Their interval method is part of the result: for the
checked Gaussian mean-intercept forms, use the default bias-corrected,
small-sample-t Wald interval. For the selected bivariate mean-slope
forms, use plain confint(fit) and do not turn off its
default small-sample correction. For the checked Gaussian scale-slope
forms, the assessed interval is the uncorrected log-standard-deviation
Wald interval; profile intervals remain feasibility checks at eight
structured levels rather than reporting intervals. Other structured
Gaussian shapes do not inherit these interval permissions.
For a pure Gaussian mean model, REML is available for an unlabelled
spatial, animal, or relatedness intercept, or for that intercept plus
one independent numeric slope, when sigma ~ 1. The
following are the three permitted shapes (replace the object names with
objects from your analysis):
fit_spatial_reml <- drmTMB(
bf(y ~ x + spatial(1 + x | site, coords = coords), sigma ~ 1),
family = gaussian(), data = dat, REML = TRUE
)
fit_animal_reml <- drmTMB(
bf(y ~ x + animal(1 + x | id, A = A), sigma ~ 1),
family = gaussian(), data = dat, REML = TRUE
)
fit_relmat_reml <- drmTMB(
bf(y ~ x + relmat(1 + x | id, K = K), sigma ~ 1),
family = gaussian(), data = dat, REML = TRUE
)For those exact forms, a direct profile interval for the structured
standard deviation is appropriate only within the configurations already
checked. Do not generalise it to several slopes, labelled covariance
blocks, changing residual scale, incomplete pairs, weights,
meta_V(), direct-SD models, or corpair().
Pedigree and Ainv animal inputs and relmat Q
are accepted representations, but they do not automatically inherit
every uncertainty result obtained with A and
K.
The structured scale is the multiplier of the supplied covariance
matrix. If the fitted scale is s_j and the supplied matrix
is K_h, the covariance is s_j^2 K_h; the
marginal standard deviation at level i is
s_j sqrt(K_h[ii]). Thus the fitted scale equals a
level-specific standard deviation only when that matrix diagonal is
one.
Structured models with point estimates only
Structured Poisson and negative-binomial mean models have a useful but narrower permission: report the point estimate for the supported single-effect forms, but not an interval as if it were calibrated. A small number of named structured beta, Student-t, Gamma, and zero-one-beta forms likewise have point-estimate support only; use their family article before treating a fit as reportable.
Matching bivariate Gaussian spatial or supplied-relatedness intercepts in both mean formulas also have point-estimate support when the two responses are complete, use the same named structure, and retain simple constant scale and association formulas. Do not extend this to slopes, extra random effects, weights, missing responses, or a different structure in each mean.
Lognormal, skew-normal, and Tweedie models do not generally accept structured random effects. For count data, use an ordinary Poisson or negative-binomial structured mean model where it answers the scientific question; otherwise use fixed effects or a Gaussian model on an appropriate transformed response.
REML boundaries
REML is a Gaussian method in drmTMB, not a general
option for every family or formula. Outside the Gaussian forms described
above, use maximum likelihood (REML = FALSE). A binomial
model with one ordinary, unlabelled mean-side intercept or independent
slope can be fitted with REML = TRUE, but treat it as a
feasibility comparison, not as a scientific estimate. Fixed-only,
correlated, labelled, structured, missing-response, and other
non-Gaussian REML requests are not available.
Higher-order covariance blocks and broad derived-correlation
intervals are not general reporting routes. Use the fitted point
estimate only if it is useful descriptively, or try
profile_targets(fit) for a direct target that the fitted
model already exposes.
Association and bivariate models
For complete pairs with fixed-effect association, vcov()
and confint() can provide association-link
(alpha) uncertainty when the fit-specific covariance
diagnostics pass. Transforming an intercept-only association with
confint(object, type = "eta"), or obtaining pointwise
association predictions, does not add a simultaneous-band or
universal-coverage claim.
The strongest current association result is an intercept-only association between a literal Bernoulli response and an ordinary negative-binomial response, in the high-information setting that has been checked. Lower-information fits warn or withhold an interval when their diagnostics fail. Random effects, missing data, weights, offsets, REML, profiles, and simultaneous association bands are outside that interval result.
For a covariate-dependent residual correlation
(rho12 ~ x), request intervals at the covariate values that
answer your question with
confint(fit, parm = "rho12", newdata = grid, method = "profile")
or
predict_parameters(fit, newdata = grid, dpar = "rho12", conf.int = TRUE).
Treat these as fit-specific intervals, not as a calibrated
guarantee.
Missing data
Missing responses and missing predictors are modelled in the
likelihood; this is not multiple imputation. Response masking is
available for Gaussian, bivariate Gaussian, Student-t, skew-normal,
lognormal, Gamma, Tweedie, binomial, Poisson, negative-binomial, strict
beta, zero-one beta, beta-binomial, cumulative-logit, and non-hurdle
truncated-negative-binomial models. Check the worked guide in
vignette("missing-data") before using it in a new
family.
Missing-predictor support is narrower:
| Response model | Missing-predictor support |
|---|---|
| Gaussian location model | Broad catalogue of predictor models |
Negative-binomial (nbinom2()) model |
One binary or one Gaussian missing predictor |
| Binomial, Poisson, strict beta, lognormal, Gamma, Student-t, or beta-binomial model | One binary missing predictor |
| Other response models | Not available |
Outside Gaussian response models, missing predictors are limited to
the binary-predictor routes and the nbinom2()
Gaussian-predictor route listed above. Do not combine multiple missing
predictors, response masking and mi() in one fit, or
random/structured/zero-inflated response terms with mi().
Multivariate missing-predictor models and missing-data EM, profile, and
REML methods are not available.
Important limits and next tutorial
- A cumulative-logit random-slope method used in development is not exposed as a public reporting route. Use the ordinary public model only at the scope described above.
- The optional Julia engine does not yet provide general mixed-family inference. Use drmTMB’s default native engine when you need routine fitted values, covariance estimates, or fixed-effect intervals.
- When a structured scale interval is central to your conclusion, prefer a better-supported ordinary random intercept or a fixed-effect scale model if either answers the same question.
- If no route on this page covers your model, simplify the random-effect structure, use fixed effects, or choose a family whose boundary behaviour matches the response. Do not present an exploratory fit as a calibrated one.
Choose the next worked tutorial from response families, structured effects, bivariate models, or missing data. This page is deliberately a reporting guide: it tells you what to fit, what to report, and where to stop.