Re: [R] r's optim vs. matlab's fminsearch

From: Spencer Graves <>
Date: Tue 13 Jun 2006 - 04:29:01 EST

          Have you also tried 'nlminb'? A year or so ago, Doug Bates switched from optim to nlminb for mixed-effects estimation. I'm not certain I know why, but I think 'nlminb' may automatically adjust the 'scale' parameter by default, while "optim" does not automatically adjust the comparable 'control$parscale'. If Matlab does reasonable auto-scaling, that might explain the difference. Others (e.g., Professors Ripley and Bates) might be able to add more.

          There might be more information on this in 'RSiteSearch', but I think it's temporarily off line right now. And, of course, you can always read the R code. Both 'nlminb' and 'optim' call compiled code, but the source should be available.

	  Hope this helps,
	  Spencer Graves	

Prof Brian Ripley wrote:
> Unless you know the function to be non-smooth, I suggest you use
> method="BFGS" in R.
> BTW, all such algorithms are only designed to find local minima, and so
> the choice of starting point may be crucial.
> On Mon, 12 Jun 2006, Anthony Bishara wrote:
>> Hi,
>> I'm having a problem converting a Matlab program into R. The R code works
>> almost all the time, but about 4% of the time R's optim function gets stuck
>> on a local minimum whereas matlab's fminsearch function does not (or at
>> least fminsearch finds a better minimum than optim). My understanding is
>> that both functions default to Nelder-Mead optimization, but what's
>> different about the two functions? Below, I've pasted the relevant default
>> options I could find. Are there other options I should to consider? Does
>> Matlab have default settings for reflection, contraction, and expansion, and

>> if so what are they? Are there other reasons optim and fminsearch might
>> work differently?
>> Thanks.
>> ***Matlab's fminsearch defaults***
>> MaxFunEvals: '200*numberofvariables'
>> MaxIter: '200*numberofvariables'
>> TolFun: 1.0000e-004 #Termination tolerance on the function
>> value.
>> TolX: 1.0000e-004 #Termination tolerance on x.
>> ***R's optim defaults (for Nelder-Mead)***
>> maxit=500
>> reltol=1e-8
>> alpha=1.0 #Reflection
>> beta=.5 #Contraction
>> gamma=2.0 #Expansion
>> Anthony J. Bishara
>> Post-Doctoral Fellow
>> Department of Psychological & Brain Sciences
>> Indiana University
>> 1101 E. Tenth St.
>> Bloomington, IN 47405
>> (812)856-4678
>> ______________________________________________
>> mailing list
>> PLEASE do read the posting guide!
> mailing list PLEASE do read the posting guide! Received on Tue Jun 13 04:44:52 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Tue 13 Jun 2006 - 06:12:23 EST.

Mailing list information is available at Please read the posting guide before posting to the list.