[R] Problems with Optimization

Tobias tobias_elbert at hotmail.com
Thu Dec 21 07:37:59 CET 2006


My apologies if this came across as unfair. This was by no means intended. I
find R to be a fantastic software and at least for my needs faster and more
comfortable to use than commercial ones such as Matlab. 

I am just wondering, because I implemented the same code on GAUSS and it
seemed to handle it a lot faster. I am by no means an expert on the
intrinsics of R or Gauss, simply a user, but if the algorithms are
implemented through C how come that it takes longer? Again, don't take this
as being unfair. I am just curious. 

...a puzzled Tobias  





Prof Brian Ripley wrote:
> 
> On Wed, 20 Dec 2006, Tobias wrote:
> 
>>
>> Dear R-helpers,
>>
>> I am having following problem:
>>
>> Let P be an observed quantity, F(...) a function describing P, and e = P
>> -
>> F(...) the error.
>>
>> F(...) is essentially a truncated mean whose value is obtained via
>> integrating from some value X to inf over a probability density with six
>> parameters. That's what usually causes the problem: for certain parameter
>> values, the integral goes very quickly to infinity which the optimization
>> algorithm can't handle. At least nlm() and some of the optim() algorithms
>> cant. The default optim() algorithm appears to be able to handle it
>> (takes
>> very long to converge though) and so is nlminb().
> 
>>From the help page
> 
>       Function 'fn' can return 'NA' or 'Inf' if the function cannot be
>       evaluated at the supplied value, but the initial value must have a
>       computable finite value of 'fn'. (Except for method '"L-BFGS-B"'
>       where the values should always be finite.)
> 
> so you are not being fair to the R developers (who were kind enough to 
> both implement and document this).
> 
>> My question is thus not really about which algorithm to use but rather
>> whether there is a 'on error ... do...' catcher in R? I have had a look
>> at
>> try() but I am not quite sure if that is what I am looking for. I
>> essentially look for a command that, in plain English, allows me to
>> specify
>> that if the integral goes to infinity, skip these parameters, and simply
>> continue optimizing into another direction.
> 
> Given that the underlying algorithms are in C not R, this is what 
> returning NA asks them to do.
> 
>> Is this possible? How do you guys handle situtations like this?
> 
> In the documented way, returning NA.
> 
> 
> -- 
> 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
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 
> 

-- 
View this message in context: http://www.nabble.com/Problems-with-Optimization-tf2863893.html#a8003417
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list