From: Spencer Graves <spencer.graves_at_pdf.com>

Date: Sat 14 Oct 2006 - 18:21:29 GMT

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 Sun Oct 15 04:26:15 2006

Date: Sat 14 Oct 2006 - 18:21:29 GMT

Because of the lack of a self-contained, reproducible example, I can only guess. If it were my problem, I might try the following:

- Try 'nlm' with 'print.level=2'. This should provide more detail about the circumstances under which it failed. If that didn't provide adequate detail, I might modify my objective function to print more detailed trace information each time it's called.
- Compare the gradient with that computed numerically, e.g., using 'grad' in library(numDeriv), especially for combinations of values apparently tested by 'nlm'.
- Work through all the examples on the 'nlm' help page and demo(nlm), making sure I understood those in full detail. Doing so might identify something I was doing wrong, etc.
- If I can't solve the problem after all of the above, I might try to develop the simplest, self-contained example I can find that still exhibits the problem. This often leads me to the problem. If it doesn't, I then have a simple, self-contained example that I can then post to this list; including such an example on average tends to increase the speed and quality of responses (and sometimes even the quantity).

Hope this helps. Spencer Graves

singyee ling wrote:

> Hello everyone!

*>
**>
**> I am having some trouble supplying the gradient function to nlm in R for
**> windows version 2.2.1.
**>
**> What follows are the R-code I use:
**>
**> fredcs39<-function(a1,b1,b2,x){return(a1+exp(b1+b2*x))}
**> loglikcs39<-function(theta,len){
**> value<-sum(mcs39[1:len]*fredcs39(theta[1],theta[2],theta[3],c(8:(7+len))) -
**> pcs39[1:len] * log(fredcs39(theta[1],theta[2],theta[3],c(8:(7+len)))))
**> a1<-theta[1]; b1<-theta[2]; b2<-theta[3]
**> df.a1<-sum(-mcs39[1:len] + pcs39[1:len]/(a1+exp(b1+b2*c(8:(7+len)))))
**> df.b1<-sum( -mcs39[1:len] * exp(b1+b2*c(8:(7+len))) + (pcs39[1:len] *
**> exp(b1+b2*c(8:(7+len))) ) /(a1+exp(b1+b2*c(8:(7+len)))))
**> df.b2<- sum(-mcs39[1:len] * exp(b1+b2*c(8:(7+len))) * c(8:(7+len)) +
**> (pcs39[1:len] * exp(b1+b2*c(8:(7+len))) * c(8:(7+len)) )
**> /(a1+exp(b1+b2*c(8:(7+len)))) )
**>
**>
**> attr(value,"gradient")<-c(df.a1,df.b1,df.b2)
**> return(value)
**> }
**>
**> theta.start<-c(0.01 ,-1.20, -0.0005)
**> outcs39<-nlm(loglikcs39,theta.start,len=50)
**>
**>
**> Error in nlm(loglikcs39, theta.start, len = 50) :
**> probable coding error in analytic gradient
**>
**>
**> Any light that can be shed on this would be highly appreciated.
**> Many thanks
**>
**> Singyee Ling
**>
**> [[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.
**>
*

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 Sun Oct 15 04:26:15 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 14 Oct 2006 - 19:30:10 GMT.

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