estimate.tsissm.spec {tsissm} | R Documentation |
Model Estimation
Description
Estimates a model given a specification object using maximum likelihood.
Usage
## S3 method for class 'tsissm.spec'
estimate(
object,
control = issm_control(algorithm = "SLSQP", trace = 0),
scores = TRUE,
debug_mode = FALSE,
...
)
## S3 method for class 'tsissm.autospec'
estimate(object, control = NULL, trace = FALSE, ...)
Arguments
object |
an object of class “tsissm.spec” or “tsissm.autospec”. |
control |
solver control parameters passed to the nloptr function. |
scores |
whether to calculate the analytic scores (Jacobian) of the likelihood. This is not available for the “tsissm.autospec” object. |
debug_mode |
for development testing, will include the TMB object. |
... |
not used. |
trace |
whether to show a progress bar for the automatic selection object and also output verbose messages. |
Details
The maximum likelihood estimation for this model is described in the vignette.
Value
An object of class “tsissm.estimate” or “tsissm.selection”. In the case of automatic model selection an object of class “tsissm.estimate” will be returned based on AIC (minimum) if “top_n” is 1, else an object of class “tsissm.selection” with a list of length “top_n”. This object can then be used for filtering, prediction and simulation and then ensembled (based on user specified weights).
Note
When calculating the scores, a future promise is created so it is fastest if
a future plan is pre-created with at least 2 workers so that the function can
run in the background without having to wait for the estimation object to be
returned.
If the control argument is NULL, then we hybrid strategy is adopted whereby
the SLSQP algorithm is initially used and if it fails (status less than 0)
then the Augmented Lagrange with MMA local solver is used which is slower but
may be more reliable.
For the automatic selection estimation, this will benefit from the use of multiple
processes which can be set up with a plan
. For progress
tracing, use handlers
. The function will check for
number of parallel workers initialized (using ‘nbrOfWorkers’), and if
it finds only 1 then will revert to non-parallel execution of the code.