A convenient function that fits a RTMB model and calculates standard errors.
Usage
optimize_RTMB(
obj,
hessian = FALSE,
restart = 0,
do_sd = TRUE,
control = list(iter.max = 2e+05, eval.max = 4e+05),
lower = -Inf,
upper = Inf,
silent = FALSE
)Arguments
- obj
The list returned by
RTMB::MakeADFun()- hessian
Logical, whether to pass the Hessian function
obj$hetostats::nlminb(). Only used if there are no random effects in the model.- restart
Integer, the maximum number of additional attempts to fit the model. See details.
- do_sd
Logical, whether to calculate standard errors through
get_sdreport()- control
List of options passed to
stats::nlminb()- lower
Lower bounds of parameters passed to
stats::nlminb()- upper
Upper bounds of parameters passed to
stats::nlminb()- silent
Logical, whether to report progress to console
Value
A named list: "opt" is the output of stats::nlminb() and "SD" is the output of get_sdreport()
Details
Argument restart allows for recursive model fitting to obtain convergence, through the following procedure:
Optimize model with
stats::nlminb().Determine convergence, defined by
RTMB::sdreport()by whether the Cholesky decomposition of the covariance matrix is possible.If convergence is not achieved, jitter parameter estimates with multiplicative factor
rlnorm(mean = 0, sd = 1e-3)and return to step 1.