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$he
tostats::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
TMB::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.