hello, I have got some trouble with R functions nlm(), nls() or optim() : I would like to fit 3 parameters which must stay in a precise interval. For exemple with nlm() : fn<-function(p) sum((dN-estdata(p[1],p[2],p[3]))^2) out<-nlm(fn, p=c(4, 17, 5), hessian=TRUE,print.level=2) with estdata() a function which returns value to fit with dN (observed data vactor) My problem is that only optim() allows me to set parameters interval with "L-BFGS-B" method but this one doesn't work in my case. I have heard about nls2 package (www.inra.fr/bia) but it doesn't work on Windows. Do you know any solutions Thank's a lot for reading my post Best regards Sebastien INA P-G ecology dpt
Non-linear minimization
3 messages · Sébastien Ballesteros, Uwe Ligges, Dimitris Rizopoulos
S?bastien Ballesteros wrote:
hello, I have got some trouble with R functions nlm(), nls() or optim() : I would like to fit 3 parameters which must stay in a precise interval. For exemple with nlm() : fn<-function(p) sum((dN-estdata(p[1],p[2],p[3]))^2) out<-nlm(fn, p=c(4, 17, 5), hessian=TRUE,print.level=2) with estdata() a function which returns value to fit with dN (observed data vactor) My problem is that only optim() allows me to set parameters interval with "L-BFGS-B" method but this one doesn't work in my case. I have heard about nls2 package (www.inra.fr/bia) but it doesn't work on Windows.
"it doesn't work on Windows" is a very gentle description in this particular case...
Do you know any solutions
A typical trick is to redefine the function so that for points outside the boundaries increasing penalties are added (if you know enough about your function). Uwe Ligges
Thank's a lot for reading my post Best regards Sebastien INA P-G ecology dpt
______________________________________________ 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
maybe you could re-parameterize the problem, e.g., p \in (a, b) p^* = (p - a) / (b - a) \in (0, 1) x = qlogis(p^*) \in \Re 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.ac.be/biostat/ http://www.student.kuleuven.ac.be/~m0390867/dimitris.htm ----- Original Message ----- From: "S?bastien Ballesteros" <sebastien_ballesteros at yahoo.fr> To: <r-help at stat.math.ethz.ch> Sent: Tuesday, March 08, 2005 2:23 PM Subject: [R] Non-linear minimization
hello, I have got some trouble with R functions nlm(), nls() or optim() : I would like to fit 3 parameters which must stay in a precise interval. For exemple with nlm() : fn<-function(p) sum((dN-estdata(p[1],p[2],p[3]))^2) out<-nlm(fn, p=c(4, 17, 5), hessian=TRUE,print.level=2) with estdata() a function which returns value to fit with dN (observed data vactor) My problem is that only optim() allows me to set parameters interval with "L-BFGS-B" method but this one doesn't work in my case. I have heard about nls2 package (www.inra.fr/bia) but it doesn't work on Windows. Do you know any solutions Thank's a lot for reading my post Best regards Sebastien INA P-G ecology dpt
______________________________________________ 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