Dear R-help,
I am new to optim function and need some help with optimization.
Problem description: I am trying to optimize a weights vector
such that it produce maximum value for a function maxVal. The
optimization is subjected to constraint. The constraints are a) Min
weight should be greater than or equal to Zero. b) Max weight should
be less than or equal to 1 c) Sum of the weights should be equal to 1.
Now after googling around a bit & trying my hands at RSiteSearch , I
found that I can use optim with L-BFGS-B method and could possible use
lower bound and upper bound for constraint, however I am clueless as
to how I can impose the sum(wgts) = 1 condition. In excel solver, this
problem is extremely simple since it's just a matter of setting an
additional constraint of setting the summation cell to 1.
Your kind help is greatly appreciated.
Best Regards
Manoj
Help on optim
4 messages · Manoj, Ingmar Visser, Dimitris Rizopoulos +1 more
Hi Manoj, AFAIK there is no way in R to optimize functions under general linear equality constraints (for inequality constraints there is constrOptim). In your case you could reparametrize such that you estimate weights w(1) ... w(n-1) and simply compute w(n) from those. Even so, it would be great to have a routine that does optimization under general linear constraints. Maybe someone out there could port the OPT++ library to R ... OPT++ is an open source optimization library that does general linear and non-linear and bound-constraint optimization. hth, ingmar
From: Manoj <manojsw at gmail.com>
Reply-To: manojsw at gmail.com
Date: Wed, 21 Sep 2005 17:33:29 +0900
To: r-help at stat.math.ethz.ch
Subject: [R] Help on optim
Dear R-help,
I am new to optim function and need some help with optimization.
Problem description: I am trying to optimize a weights vector
such that it produce maximum value for a function maxVal. The
optimization is subjected to constraint. The constraints are a) Min
weight should be greater than or equal to Zero. b) Max weight should
be less than or equal to 1 c) Sum of the weights should be equal to 1.
Now after googling around a bit & trying my hands at RSiteSearch , I
found that I can use optim with L-BFGS-B method and could possible use
lower bound and upper bound for constraint, however I am clueless as
to how I can impose the sum(wgts) = 1 condition. In excel solver, this
problem is extremely simple since it's just a matter of setting an
additional constraint of setting the summation cell to 1.
Your kind help is greatly appreciated.
Best Regards
Manoj
______________________________________________ R-help at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
you don't need L-BFGS-B in this case since you can easily re-parameterize you problem, i.e., you can always write: pi_i = exp(a_i) / sum(exp(a_i)), with e.g., a_1 = 0 and thus maximize with respect to a_i's. I hope it helps. Best, Dimitris ---- Dimitris Rizopoulos Ph.D. Student Biostatistical Centre School of Public Health Catholic University of Leuven Address: Kapucijnenvoer 35, Leuven, Belgium Tel: +32/16/336899 Fax: +32/16/337015 Web: http://www.med.kuleuven.be/biostat/ http://www.student.kuleuven.be/~m0390867/dimitris.htm ----- Original Message ----- From: "Manoj" <manojsw at gmail.com> To: <r-help at stat.math.ethz.ch> Sent: Wednesday, September 21, 2005 10:33 AM Subject: [R] Help on optim
Dear R-help,
I am new to optim function and need some help with
optimization.
Problem description: I am trying to optimize a weights vector
such that it produce maximum value for a function maxVal. The
optimization is subjected to constraint. The constraints are a) Min
weight should be greater than or equal to Zero. b) Max weight should
be less than or equal to 1 c) Sum of the weights should be equal to
1.
Now after googling around a bit & trying my hands at RSiteSearch , I
found that I can use optim with L-BFGS-B method and could possible
use
lower bound and upper bound for constraint, however I am clueless as
to how I can impose the sum(wgts) = 1 condition. In excel solver,
this
problem is extremely simple since it's just a matter of setting an
additional constraint of setting the summation cell to 1.
Your kind help is greatly appreciated.
Best Regards
Manoj
______________________________________________ R-help at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
Dimitris Rizopoulos <dimitris.rizopoulos <at> med.kuleuven.be> writes:
you don't need L-BFGS-B in this case since you can easily re-parameterize you problem, i.e., you can always write: pi_i = exp(a_i) / sum(exp(a_i)), with e.g., a_1 = 0 and thus maximize with respect to a_i's. I hope it helps. Best, Dimitris
although this may be problematic if some of the original parameters lie on the boundary ...