Although secr.fit
is quite robust, it does not always
work. Inadequate data or an overambitious model occasionally cause
numerical problems in the algorithms used for fitting the model, or
problems of identifiability, as described for capture--recapture models
in general by Gimenez et al. (2004). Here are some tips that may help
you.
start
argument.method = "Nelder-Mead"
is more robust than the default). The same maximum likelihood should
be found regardless of method, so AIC values are comparable across
methods. secr.fit(..., start = last.model)
where last.model
is a
previously fitted secr object. method = "none"
. This bypasses maximization and computes the
variances afresh using fdHess
from nlme. nx
in
make.mask
). Check that the extent of the mask matches your
data. typsize
argument of nlm
or the parscale
control argument of optim
. fixed
). nlm
is that it takes a large step in the parameter space early on in the
maximization. The step may be so large that it causes floating point
underflow or overflow in one or more real parameters. This can be
controlled by passing the `stepmax' argument of nlm
in the
... argument of secr.fit
(see first example). See also the
previous point about scaling of covariates. verify = TRUE
you see the log
likelihood converge (assuming trace = TRUE
), but
secr.fit
crashes without returning, perhaps with an obscure
message referring to nls
, or "Error in integrate... : the
integral is probably divergent"
. This is most likely due to numerical
problems in the optional bias check with bias.D
. Simply
set verify = FALSE
and repeat. mash
function may be used to reduce the number of
detectors when the design uses many identical and independent
clusters. Otherwise, apply your ingenuity to simplify your model,
e.g., by casting `groups' as `sessions'. Memory is less often an issue
on 64-bit systems (see link below). secr.fit
, Memory-limits