From: Iris Zhao <rhelp.zhao_at_gmail.com>

Date: Sat 22 Jul 2006 - 07:41:47 EST

R-help@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 and provide commented, minimal, self-contained, reproducible code. Received on Sat Jul 22 07:46:54 2006

Date: Sat 22 Jul 2006 - 07:41:47 EST

Dear Spencer,

Thank you very much for your helpful reply. I was trying to reproduce a table in one paper. After I modified my code according to your suggestion, I was able to get the results that are very close to those in the paper. It seems the starting values of the parameters to be optimized are very crutial. So I will have different optimal values for different starting vectors. How can I be sure the min value returned by optim() is the true optimal value?

I am also curious why you choose the constant penalty to handle the constraint in the first place. Why not use lagrange multiplier method to eliminate the constraint?

Thanks again. I am grateful for your help.

Best regards,

Iris

On 7/18/06, Spencer Graves <spencer.graves@pdf.com> wrote:

*>
*

> I had good luck translating constrained into unconstrained

*> problems
**> and then optimizing the unconstrained problem. Have you tried something
**> like the following:
**>
**> Define:
**> z = c(z1, z2, z3), where p1=1/(1+exp(-z1), etc. This translates
**> the
**> constraints on the p's to
**>
**> G(z) = P*(f1(z)-r12*f2(z))^2-f1(z)
**>
**> where f1(z) = f1(p1(z1), p2(z2), p3(z3), and similarly for f2(z), and
**> where P = a penalty term,
**> and r12 = (1-c)*k1/(c*(1-k1).
**>
**> Can f2(z) ever go outside (0, 1)? If yes, I would modify G(z) by
**> adding a term like (min(0, f2(z), 1-f2(z))^2)
**>
**> If I haven't made a math error, your problem should translate
**> into
**> this form. I first solve this problem for z with P small like 1. Then
**> after I've got a solution for that, I increase P to 2, then 10, then
**> 100, etc., until the penalty is so great that the desired equality has
**> been effectively achieved.
**>
**> With 'P' fixed, 'optim' should handle this kind of problem
**> handily.
**> To learn how, I suggest you work through the examples in the ?optim help
**> page. I'd ignore the gradient, at least initially. A silly math error
**> in computing the gradient can delay a solutions unnecessarily. If you
**> need to solve thousands of problems like this for different values of
**> k1 and 'c', I might later program the gradient. However, I would not do
**> that initially.
**>
**> Also, if you are not already familiar with Venables and Ripley
**> (2002)
**> Modern Applied Statistics with S, 4th ed. (Springer -- or an earlier
**> edition), I would encourage you to spend some quality time with this
**> book. It can help you with 'optim', with contour plots, etc.
**>
**> Hope this helps,
**> Spencer Graves
**>
**> Iris Zhao wrote:
**> > Dear all,
**> >
**> >
**> >
**> > I am working on optimization problem and have some trouble running
**> optim().
**> > I have two functions (f1, f2) and 4 unknown parameters (p1, p2, p3, p4).
**> > Both f1 and f2 are functions of p1, p2, and p3, denoted by f1(p1, p2,
**> p3)
**> > and f2(p1,p2,p3) respectively.
**> >
**> >
**> >
**> > The goal is to maximize f1(p1, p2, p3) subject to two constraints:
**> >
**> > (1) c = k1*p4/(k1*p4+(1-k1)*f1(p1,p2,p3)), where c and k1 are some
**> known
**> > constants
**> >
**> > (2) p4 = f2(p1, p2, p3)
**> >
**> > In addition, each parameter ranges from 0 to 1, and both f1 and f2
**> involve
**> > integrations.
**> >
**> >
**> >
**> > I tried to use lagrange multipliers to eliminate two equality
**> constraints
**> > and then use optim() to find the maximum value and optimal parameter
**> > estimates.
**> >
**> > So I let fn be f1+lambda1*(c- k1*p4/(k1*p4+(1-k1)*f1(p1,p2,p3))) +
**> > lambda2(p4-f2(p1,p2,p3)). The error message I got was "Error in fn(par,
**> ...)
**> > : recursive default argument reference."
**> >
**> >
**> >
**> > I wonder whether current build-in functions in R can do this type of
**> jobs.
**> > Any suggestion will be greatly appreciated.
**> >
**> >
**> >
**> > Iris
**> >
**> > [[alternative HTML version deleted]]
**> >
**> > ______________________________________________
**> > R-help@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
**>
*

[[alternative HTML version deleted]]

R-help@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 and provide commented, minimal, self-contained, reproducible code. Received on Sat Jul 22 07:46:54 2006

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.1.8, at Sat 22 Jul 2006 - 18:15:26 EST.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*