Skip to contents

convergence_status() returns a short character label for programmatic workflows that need more detail than is_converged(). A fit can report optimizer code 0 while the likelihood geometry is degenerate (no proper maximum or non-finite uncertainty); such fits return "degenerate" even when multi_start selected among several starts. Fixed-effect binomial separation, Poisson / NB2 rays with no finite MLE, and an unbounded continuous location-scale likelihood are included in that geometry. "boundary" marks an optimizer-converged fit with variance-component, residual-correlation, or temporal (residual SD, OU decay, AR1 persistence) parameters near an interpretability boundary. is_converged() and converged() are the same plain logical: they are TRUE only for "converged". Numeric predicates are identical in DRModels.jl (docs/design/278-twin-convergence-status.md).

Usage

convergence_status(object, ...)

# Default S3 method
convergence_status(object, ...)

# S3 method for class 'drmTMB'
convergence_status(object, ...)

# S3 method for class 'drmTMB_julia'
convergence_status(object, ...)

Arguments

object

A drmTMB fit.

...

Reserved for future options.

Value

One of "converged", "boundary", or "degenerate".

Examples

set.seed(20260916)
dat <- data.frame(y = rnorm(40), x = rnorm(40))
fit <- drmTMB(bf(y ~ x, sigma ~ 1), data = dat)
convergence_status(fit)
#> [1] "converged"