Trust Region Unconstrained Optimization for R

University of Minnesota, Twin Cities     School of Statistics     Charlie Geyer's Home Page

Last changed: Tue Oct 25 17:00 CDT 2005

New! The software is now at CRAN. The package name is trust.

This web page provides yet another unconstrained optimization routine for the R statistical computing environment. It's already got two: nlm and optim. But here's another.

New! Current version trust_0.1-2.tar.gz.

Here is the R help page.

So why another optimization routine? In short, it does well what the others do badly (and vice versa).

trust was written because I was forced to. I had an objective function that was very expensive to compute (a Monte Carlo computation) but analytic derivatives were available (just differentiate the Monte Carlo computation). Moreover, the objective function was really obnoxious, having a banana-shaped ridge. nlm and optim just led to endless waste of time, producing no useful results. It was very depressing. As soon as I had trust region code, it was perfectly clear how obnoxious the objective function was, and we found its local optima efficiently despite the obnoxiousness.

Once trust was available, I made it the default optimizer for the aster contributed package for R. Even though it is supposed to be slow compared to nlm and optim, and it is slow when the basis of comparison is the time to do one iteration, in practice on this class of problems (aster is doing maximum likelihood in an exponential family, hence maximizing a concave function) trust is about 4 times as fast as nlm and about 16 times as fast as optim using either its "CG" or its "L-BFGS-B" method. The evidence is the following simulation study done using Sweave. Here is the PDF output, and here is the Sweave source (Rnw file).