[R] Scaling in optimization

John C Nash nashjc at uottawa.ca
Fri Feb 3 18:05:45 CET 2012

Ben Bolker pointed out in a response about max. likelihood estimation that parameter
scaling is not available in nlminb

On 02/03/2012 06:00 AM, r-help-request at r-project.org wrote:
>  * if you were using one of the optimizing methods from optim() (rather
> than nlminb), e.g. L-BFGS-B, I would suggest you try using parscale to
> rescale the parameters to have approximately equal magnitudes near the
> solution.  This apparently isn't possible with nlminb, but you could try
> optimizer="optim" (the default), method="L-BFGS-B" and see how you do
> (although L-BFGS-B is often a bit finicky).  Alternatively, you can try
> optimizer="optimx", in which case you have a larger variety of
> unconstrained optimizers to choose from (you have to install the optimx
> package and take a look at its documentation).  Alternatively, you can
> scale your input variables (e.g. use scale() on your input matrix to get
> zero-centered, sd 1 variables), although you would then have to adjust
> your lower and upper bounds accordingly.

This note is to mention that the R-forge version of optimx(), which I caution is still
being developed, has introduced parameter scaling for all 15 optimizers currently included
in the optimx() wrapper. Feedback and comments are welcome for this experimental version.
It is yet far from perfect, but progress is being made and will be accelerated by input
from users. Developers of optimizers cannot anticipate all the obstacles users will create
-- we need our programs put to hard tests. See


One goal of optimx is to provide a single syntax for calling all the optimizers.



More information about the R-help mailing list