[R] Supply linear constrain to optimizer
ben at zoo.ufl.edu
Fri Sep 14 13:58:09 CEST 2001
I agree with the suggestion to reparameterize the data, but the problem
here is not readjusting the range (the box constraints in optim/L-BFGS-B
work just fine).
A transformation I have used for compositional data:
c(1) <-> p(1)
c(2) <-> p(2)/(1-p(1))
c(n) <-> p(n)/(1-sum p(1)..p(n-1))
On Fri, 14 Sep 2001, Philippe Grosjean wrote:
> Try reparameterize the function. Replace c1 and c2 by functions such they
> return values in the range you want. Hints: use ln(c) instead of c for
> returning a positive number; to obtain a range like [a, b], you can use a
> 4-parameter logistic function,... OK, it's not easy in the present case, but
> it is a way to get around your problem.
> Best regards,
> Philippe Grosjean
> ) ) ) ) ) __ __
> ( ( ( ( ( |__) | _
> ) ) ) ) ) | hilippe |__)rosjean
> ( ( ( ( ( Marine Biol. Lab., ULB, Belgium
> ) ) ) ) ) __
> ( ( ( ( ( |\ /| |__)
> ) ) ) ) ) | \/ |ariculture & |__)iostatistics
> ( ( ( ( (
> ) ) ) ) ) e-mail: phgrosje at ulb.ac.be or phgrosjean at sciviews.org
> ( ( ( ( ( SciViews project coordinator (http://www.sciviews.org)
> ) ) ) ) ) tel: 00-32-2-650.29.70 (lab), 00-32-2-673.31.33 (home)
> ( ( ( ( (
> ) ) ) ) ) "I'm 100% confident that p is between 0 and 1"
> ( ( ( ( ( L. Gonick & W. Smith (1993)
> ) ) ) ) )
> >Dear R and S users,
> >I've been working on fitting finite mixture of negative exponential
> >distributions using maximum likelihood based on the example given in MASS.
> >So far I had much success in fitting two components. The problem started
> >when I tried to extend the procedure to fit three components.
> >More specifically,
> >likelihood = sum( ln(c1*exp(-x/lambda1)/lambda1 +
> >c2*exp(-x/lambda2)/lambda2 + (1-c1-c2)*exp(-x/lambda3)/lambda3) )
> >I've used optimizers such as ms and nlminb (SPLUS 5.0 for UNIX), and
> >provided parameters constrains (0 <= c1, c2 <= 1) to nlminb via lower and
> >upper. But these constrains provide no protection for (1-c1-c2) being
> >between interval [0,1], which resulted in generating NAs in the likelihood
> >function during iteration.
> >I've been looking at various documentations, but didn't see anywhere
> >mentioning setting linear constrain, in this case, c1 + c2 <= 1.
> >Any suggestion and pointers will be greatly apprepciated.
> >Kevin Xie
> >Research Student
> >Cavendish School of Computer Science
> >University of Westminster
> >London, UK
> r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
318 Carr Hall bolker at zoo.ufl.edu
Zoology Department, University of Florida http://www.zoo.ufl.edu/bolker
Box 118525 (ph) 352-392-5697
Gainesville, FL 32611-8525 (fax) 352-392-3704
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
More information about the R-help