# [R] Supply linear constrain to optimizer

Prof Brian Ripley ripley at stats.ox.ac.uk
Fri Sep 14 14:39:36 CEST 2001

```In my reading the most common transformation for mixtures is a log-linear
model, that is p_i = exp(g_i) / sum_j exp(g_j).  There are one too many
g_i's and this is solved in exactly the same way as for a log-linear model
via glm, by omitting one, by a sum constraint ....

This view does exclude any p_i = 0, but that is intentional as components
could be dropped.

If the boundary cases were of interest it would be nice to have an
optimizer that allows linear inequality bounds (that is to optimize over a
simplex).  As we don't have one, setting the objective to a large value
or NA (in R at least) will cause the optimizer to keep within the region,
but it may also cause it to work really slowly.

Brian

On Fri, 14 Sep 2001, Ben Bolker wrote:

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

--
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 272860 (secr)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

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

```