Thank you very much, that is exactly what I wanted to know.

I will add the gradient.

Do you have any reference about : "the objective function is additive
rather than multiplicative, it has better numerical conditioning" ? I am
just being curious :)

Gustave


2008/3/5, Ravi Varadhan <rvaradhan@jhmi.edu>:
>
> Hi,
>
> Let me make the following points in response to your questions:
>
> 1.  Your call to optim() with "L-BFGS-B" as the method is correct.  Just
> make sure that your function "f" is defined as negative log-likelihood,
> since optim is by default a minimizer.  The other option is to define
> log-likelihood as usual, but set control=list(fnscale=-1).
>
> 2.  You can add derivative (or gradient to be more precise) by defining
> that
> function and then using the "gr" argument in optim.  Specifying exact
> gradient almost always improves the convergence of the iterative schemes,
> especially for ill-conditioned problems (flat region around the local
> minima). So, if it is not too much trouble, and you are confident of your
> differentiation skills, you should do that.  However, in most cases the
> approximate finite-difference gradient used by optim() should be good
> enough.
>
> 3.  Regardless of whether it is easy to compute the exact gradient or not,
> it is generally a bad idea to maximize the likelihood that involves the
> product of a large number of very small numbers.  It is almost always
> better
> to maximize the log-likelihood.  Since the objective function is additive
> rather than multiplicative, it has better numerical conditioning.
>
> Ravi.
>
>
>
> ----------------------------------------------------------------------------
> -------
>
> Ravi Varadhan, Ph.D.
>
> Assistant Professor, The Center on Aging and Health
>
> Division of Geriatric Medicine and Gerontology
>
> Johns Hopkins University
>
> Ph: (410) 502-2619
>
> Fax: (410) 614-9625
>
> Email: rvaradhan@jhmi.edu
>
> Webpage:  http://www.jhsph.edu/agingandhealth/People/Faculty/Varadhan.html
>
>
>
>
> ----------------------------------------------------------------------------
> --------
>
>
>
> -----Original Message-----
> From: r-help-bounces@r-project.org [mailto:r-help-bounces@r-project.org]
> On
> Behalf Of Gustave Lefou
> Sent: Wednesday, March 05, 2008 1:34 PM
> To: r-help@r-project.org
> Subject: [R] box-constrained
>
> Hello everybody,
>
> I have a question about box-constrained optimization. I've done some
> research and I found that optim could do that. Are there other ways in R ?
>
> Is the following correct if I have a function f of two parameters
> belonging
> for example to [0,1] and [0,Infinity] ?
> optim(par=param, fn=f, method="L-BFGS-B", lower=c(0,0), upper=c(1,Inf))
>
> My other question is whether it is possible to add the derivatives of my
> function (like in nlm) and whether it is better to add them ?
>
> If there is no need to add the derivatives, then I guess I could wish to
> optimize the likelihood directly rather than to optimize the
> log-likelihood... Indeed one aspect of the log-likelihood is to make the
> derivatives tractable (in iid cases). Do you agree ?
>
> Thank you !
> Gustave
>
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help@r-project.org 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.
>

	[[alternative HTML version deleted]]

