searchMinimizer: Minimize a criterion function

Description Usage Arguments Details Value Author(s) See Also Examples

View source: R/qsOpt.R


The function either searches for a root of the quasi-score or minimizes one of the criterion functions.


searchMinimizer(x0, qsd, method = c("qscoring", "bobyqa", "direct"),
  opts = list(), control = list(), ..., obs = NULL, info = TRUE,
  check = TRUE, restart = TRUE, pl = 0L, verbose = FALSE)



(named) numeric vector, the starting point


object of class QLmodel


names of possible minimization routines (see details)


list of control arguments for quasi-scoring iteration, see qscoring


list of control arguments passed to the auxiliary routines


further arguments passed to covarTx


numeric vector of observed statistics, overwrites 'qsd$obs'


additional information at found minimizer


logical, TRUE (default), whether to check input arguments


logical, TRUE (default), whether to restart optimization in case of non convergence


numeric value (>=0), the print level


if TRUE (default), print intermediate output


The function provides an interface to local and global numerical minimization routines using the approximate quasi-deviance (QD) or Mahalanobis distance (MD) as an objective (monitor) function.

The function does not require additional simulations to find an approximate minimizer or root of the quasi-score. The numerical iterations always take place on the fast to evaluate criterion function approximations. The main purpose is to provide an entry point for minimization without the need of sampling new candidate points for evaluation. This is particularly useful if we search for a "first-shot" minimizer or to re-iterate a few further steps after estimation of the model parameter.

The criterion function is treated as a deterministic (non-random) function during minimization (or root finding) whose surface depends on the sample points and chosen covariance models. Because of the typical nonconvex nature of the criterion functions one cannot expect a global minimizer by applying any local search method like, for example, the scoring iteration qscoring. Therfore, if the quasi-scoring iteration or some other available method gets stuck in a local minimum of the criterion function showing at least some kind of numerical convergence we use such minimizer as it is and finish the search, possibly being unlucky, having not found an approximate root of the quasi-score vector (or minimum of the Mahalanobis distance). If there is no obvious convergence or any error, the search is restarted by switching to the next user supplied minimization routine defined in the vector of method names 'method'.

Choice of local minimization routines

Besides the quasi-scoring method, 'method' equal to "qscoring", the following (derivative-free) routines from the nloptr package are available for minimizing both criterion functions:

Using quasi-scoring first, which is only valid for minimizing the QD, is always a good idea since we might have done a good guess already being close to an approximate root. If this fails we switch to any of the above alternative methods (e.g. bobyqa as the default method) or eventually - in some real hard situations - to the method 'direct', if given, or its locally biased version 'directL'. The order of processing is determined by the order of appearance of the names in the argument 'method'. Any method available from package 'nloptr' can be chosen. In particular, setting method="nloptr" and defining 'control' in an appropriate way allows to choose a multistart algorithm such as mlsl, see also multiSearch for an alternative solution.

Only if there are reasonable arguments against quasi-scoring, such as expecting local minima rather than a root first or an available limited computational budget, we can always apply the direct search method 'direct' leading to a globally exhaustive search. Note that we must always supply a starting point 'x0', which could be any vector valued parameter of the parameter space unless method 'direct' is chosen. Then 'x0' is still required but ignored as a starting point since it uses the "center point" of the (hyper)box constraints internally. In addition, if cross-validation models 'cvm' are given, the cross-validation prediction variances are inherently used during consecutive iterations of all methods. This results in additional computational efforts due to the repeated evaluations of the statistics to calculate these variances during each new iteration.


A list as follows


solution vector


objective value


applied method


termination code


if applicable, quasi-score vector (or gradient of MD)


M. Baaske

See Also

nloptr, qscoring, multiSearch



qle documentation built on May 2, 2019, 9:55 a.m.