[Rd] "wild" function example in optim
Prof Brian Ripley
ripley at stats.ox.ac.uk
Tue Apr 26 18:26:00 CEST 2005
On Tue, 26 Apr 2005, Thomas Lumley wrote:
> On Tue, 26 Apr 2005, Werner Bier wrote:
>
>> Dear all,
>>
>> Firstly, I do apologize if my question is simple and posted in the wrong
>> place but I had no reply from the R-help mailing list (maybe it is too
>> simple!).
>>
>> I was wondering why parscale is set to 20 in the "wild" function example
>> used in ?optim. This function has only one parameter and if we set parscale
>> equal to 1 then the solution near the global minimum is not found.
Note that there the method is "SANN". That makes assumptions about step
sizes, in fact using a spherical Gaussian distribution of fixed size. So
parscale=20 is telling it to make initial steps large enough to explore
the `blobs'. In particular, parscale is not set for the BFGS call in that
example.
>> I would use parscale only in cases the object function has more than one
>> parameter to be optimised, shouldn't I?
>>
>
> parscale is more important in cases with more than one parameter (and with
> one parameter you could set fnscale instead of parscale to get the same
> effect)
Not necessarily. The finite-differencing is done in units rescaled by
parscale. So a unit change in a single parameter needs to be a
reasonably-sized step. One can always set fnscale and neps, but it is
easier to set parscale.
> However, a sufficiently badly scaled one-d problem can still benefit from
> fnscale or parscale.
>> f
> function(x) 1e-10*x^2
>> g
> function(x) 2e-10*x
>> optim(7,f,g,method="CG")$par
> [1] 7
>> optim(7,f,g,method="CG",control=list(parscale=1e5))$par
> [1] 1.209735e-14
>> optim(7,f,g,method="CG",control=list(fnscale=1e-10))$par
> [1] 1.673141e-15
but without g
> optim(7,f,method="CG",control=list(parscale=1e5))$par
[1] 1.209735e-14
> optim(7,f,method="CG",control=list(fnscale=1e-10))$par
[1] 1.997947e-11
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-devel
mailing list