# [R] Supply linear constrain to optimizer

Philippe Grosjean phgrosje at ulb.ac.be
Fri Sep 14 09:14:52 CEST 2001

```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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._

```