searchMinimizer: Minimize a criterion function

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

View source: R/qsOpt.R


The function searches for a root of the quasi-score vector 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, 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


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 function.

The function does not require additional simulations to find an approximate minimizer or root. 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.

The criterion function is treated as a deterministic (non-random) function during minimization (or root finding) whose surface depends on the sample points. 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 scoring iteration or some other available method gets stuck in a possibly 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 convergence practically, the search is restarted by switching to the next user supplied minimization routine defined in 'method'.

Choice of auxiliary minimization methods

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

Using quasi-scoring first, which is only valid for minimizing the QD function, is always a good idea since we might have done a good guess already being close to an approximate root. If it 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' 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 'control' allows to choose a multistart algorithm such as mlsl.

Only if there are reasonable arguments against quasi-scoring, such as expecting a local minimum 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 CV models 'cvm' are given, the CV based 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



mbaaske/qle documentation built on Feb. 3, 2018, 11:02 a.m.