Peter Muhlberger
2005-Oct-03 18:33 UTC
[R] ML optimization question--unidimensional unfolding scaling
I'm trying to put together an R routine to conduct unidimensional unfolding scaling analysis using maximum likelihood. My problem is that ML optimization will get stuck at latent scale points that are far from optimal. The point optimizes on one of the observed variables but not others and for ML to move away from this 'local optimum', it has to move in a direction in which the likelihood is decreasing, which it won't. It's not hard to know where to look for a more optimal value--it'll be just on the other side of the mean of a curve. So, I can find better values, but these values need to be fed back into ML for continued optimization. Problem is, optim or nlm don't allow me to feed them new values for parameters and in any event ML will likely choke w/ parameters jumping around. One solution I've thought of is to restart optim or nlm w/ the new values whenever a point jumps. Is there any good way to get optim or nlm to prematurely terminate, return control to the calling program, while retaining a copy of the estimates? Perhaps ML isn't the best approach for this kind of problem. Suggestions welcome! Cheers, Peter
Spencer Graves
2005-Oct-12 03:11 UTC
[R] ML optimization question--unidimensional unfolding scaling
There may be a few problems where ML (or more generally Bayes) fails to give sensible answers, but they are relatively rare. What is your likelihood? How many parameters are you trying to estimate? Are you using constrained or unconstrained optimization? If constrained, I suggest you remove the constraints by appropriate transformation. When considering alternative transformations, I consider (a) what makes physical sense, and (b) which transformation produces a log likelihood that is more close to being parabolic. Hou are you calling "optim"? Have you tried all "SANN" as well as "Nelder-Mead", "BFGS", and "CG"? If you are using constrained optimization, I suggest you move the constraints to Inf by appropriate transformation and use the other methods, as I just suggested. If you would still like more suggestions from this group, please provide more detail -- but as tersely as possible. The posting guide is, I believe, quite useful (www.R-project.org/posting-guide.html). spencer graves Peter Muhlberger wrote:> I'm trying to put together an R routine to conduct unidimensional unfolding > scaling analysis using maximum likelihood. My problem is that ML > optimization will get stuck at latent scale points that are far from > optimal. The point optimizes on one of the observed variables but not > others and for ML to move away from this 'local optimum', it has to move in > a direction in which the likelihood is decreasing, which it won't. > > It's not hard to know where to look for a more optimal value--it'll be just > on the other side of the mean of a curve. So, I can find better values, but > these values need to be fed back into ML for continued optimization. > Problem is, optim or nlm don't allow me to feed them new values for > parameters and in any event ML will likely choke w/ parameters jumping > around. > > One solution I've thought of is to restart optim or nlm w/ the new values > whenever a point jumps. Is there any good way to get optim or nlm to > prematurely terminate, return control to the calling program, while > retaining a copy of the estimates? > > Perhaps ML isn't the best approach for this kind of problem. Suggestions > welcome! > > Cheers, > Peter > > ______________________________________________ > 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-- Spencer Graves, PhD Senior Development Engineer PDF Solutions, Inc. 333 West San Carlos Street Suite 700 San Jose, CA 95110, USA spencer.graves at pdf.com www.pdf.com <http://www.pdf.com> Tel: 408-938-4420 Fax: 408-280-7915