Skip to contents

engine = "julia" is a current, actively-admitted fitting route (see R/julia-family-registry.R and vignettes/julia-engine.Rmd for which families and routes it covers). This method computes intervals for an existing drmTMB_julia object.

Usage

# S3 method for class 'drmTMB_julia'
confint(
  object,
  parm = NULL,
  level = 0.95,
  method = c("wald", "profile", "bootstrap"),
  R = 199L,
  seed = NULL,
  threads = FALSE,
  ...
)

# S3 method for class 'drmTMB_julia_xfam'
confint(object, parm = "rho_latent",
  level = 0.95, method = c("profile", "wald"), ...)

Arguments

object

A drmTMB_julia fit, or a legacy drmTMB_julia_xfam fit for the restricted cross-family interval method.

parm

Optional target selection. For "wald", compact coefficient labels ("mu:x") or full names ("fixef:mu:x"); for "profile" / "bootstrap", either a fixed-effect target such as "fixef:mu:x" (or the compact "mu:x" alias) or a supported SD target name such as "sd:mu:phylo(1 | species)" / "sd:sigma:phylo(1 | species)" or, for q = 4 bivariate fits, "sd:sigma1:phylo(1 | species)".

level

Confidence level.

method

"wald" (default), "profile", or "bootstrap".

R

Bootstrap replicate count (used only when method = "bootstrap").

seed

Optional bootstrap seed.

threads

Logical; request Julia-side threaded refits for the profile / bootstrap path. threads = TRUE uses the threads Julia already has; it cannot start more. Set JULIA_NUM_THREADS (for example Sys.setenv(JULIA_NUM_THREADS = "8")) before the first engine = "julia" call in a fresh R session. If Julia is running single-threaded, refits run serially and a one-time message says so. Setting JULIA_NUM_THREADS alone does not parallelise refits either, because threads defaults to FALSE. Avoid combining many Julia threads with many BLAS threads.

...

Unused.

Value

A confidence-interval data frame with the shared parm, level, lower, upper, scale, transformation, tmb_parameter, index, method, and conf.status columns.

Details

For a drmTMB_julia fit, confint() exposes two interval families:

  • method = "wald" (the default) builds symmetric Wald intervals for the fixed-effect coefficients (mu, sigma, ...) on the linear-predictor (link) scale, using the fixed-effect covariance DRM.jl marshals back through the bridge (vcov(object)). This mirrors the native drmTMB Wald path, whose fixed-effect rows are also reported on the link scale.

  • method = "profile" / method = "bootstrap" re-enter DRM.jl's inference primitive. Two target families are supported:

    • the phylogenetic SD targets, transformed back to the positive response scale: the univariate Gaussian sd:mu:phylo(1 | species) and sd:sigma:phylo(1 | species) targets, and the four bivariate q = 4 targets sd:mu1:*, sd:mu2:*, sd:sigma1:*, and sd:sigma2:*;

    • ordinary fixed-effect coefficients (fixef:<dpar>:<coef>, e.g. "fixef:mu:x"), reported on the same link scale as the Wald rows. Not available for the bivariate q = 4 route (biv_gaussian), whose fixed effects are not individually profiled here.

Ordered cutpoints of a cumulative_logit() fit are the documented exception. profile_targets() lists them ("ordinal:cutpoint:<label>") so they are discoverable, and the fitted values are on the object in fit$ordinal$cutpoints, but no interval method routes them: DRM.jl's bridge inference accepts only fixed-effect and SD targets, so confint() refuses a cutpoint target for every method and points at engine = "tmb", whose constrained cutpoint profile does solve them.

For the legacy experimental drmTMB_julia_xfam route, only parm = "rho_latent" and level = 0.95 are accepted. The method returns the stored latent-correlation interval selected by method. This inspection route adds no admission, standard-error, calibration, or coverage claim.