[R] specify constraints in maximum likelihood

Ben Bolker bolker at ufl.edu
Wed Jun 13 14:05:40 CEST 2007


 <adschai <at> optonline.net> writes:

> 
> Hi,I know only mle function but it seems that in mle one can only specify the
bound of the unknowns forming the
> likelihood function. But I would like to specify something like, a = 2b or a
<= 2b where 'a' and 'b' could be my
> parameters in the likelihood function. Any help would be really appreciated.
Thank you!- adschai
> 
> 	


 Something like a=2b (equality constraints with a simple form)
should be easy, just reparameterize your function.  e.g. if
you have minuslogl equal to  f(a,b,c) then define a new function

f2 <- function(a,c) {
   b <- a/2
   f(a,b,c)
}

For a<=2b reparameterize in terms of d=a-2b :

f2 <- function(a,c,d) {
   b <- (a-d)/2
   f(a,b,c)
}

and impose the constraint (e.g. with L-BFGS-B) of d<=0.
Actually, the second one (linear inequality constraints)
can also be done with constrOptim.

   More complex (nonlinear) constraints have to be done
with Lagrange multipliers or penalty terms
( http://www.zoo.ufl.edu/bolker/emdbook/chap7A.pdf has
some general description, at a very basic level )



More information about the R-help mailing list