[R] gradient option in "nlm" function
yuanji@mdanderson.org
yuanji at mdanderson.org
Mon Nov 17 17:24:54 CET 2003
Oh, that's a typo. I passed the function target. Seems to me R requires
some kind of specific syntex.
Yuan Ji, Ph.D.
############################################
Assistant Professor
Department of Bistatistics
The University of Texas M.D. Anderson Cancer Center
1515 Holcombe Blvd. - Unit 447
Houston, TX 77030-4009
(713)794-4153
############################################
|---------+------------------------------------------>
| | |
| | |
| | Thomas W Blackwell|
| | <tblackw at umich.edu>|
| | |
| | 11/17/03 10:18 AM|
| | |
|---------+------------------------------------------>
>-----------------------------------------------------------------------------------------------------|
| |
| |
| |
|To: |
| yuanji at mdanderson.org |
|cc: |
| r-help at stat.math.ethz.ch |
|Subject: |
| Re: [R] gradient option in "nlm" function |
| |
>-----------------------------------------------------------------------------------------------------|
On Mon, 17 Nov 2003 yuanji at mdanderson.org wrote:
> Dear list members,
>
> I am trying to use "nlm" function to maximize a mixture likelihood of
beta
> densities. There are five unknown parameters in the likelihood. Since I
can
> get the analytic gradient, I attach the "gradient" attribute in my target
> likehood function. The code is as the following
>
> > target <- function(x)
> > { resp <- ....
> > grad <- rep(0,5) ## I have 5 paramters
> > grad[1] <- ...; grad[2] <- ...; grad[3] <- ...; grad[4] <- ...;
grad[5]
> <- ...
> > attr(resp, "gradient") <- grad
> > resp
> > }
> > nlm(targ, c(1,2,3,4,5))
It would probably help if you passed the function target() to
nlm(), rather than passing targ().
> The R gave me this error message
>
> "Error in nlm(targ, c(1,2,3,4,5)) : probable coding error in analytic
> gradient"
>
> I ran my code for defining gradient separately, and there seemed to be no
> coding error. I provided other options for nlm() function and it gave me
> the same error message. I removed the gradient part and let nlm() do the
> numerical derivative, it ran but the algorithm was not converging.
>
> I want to know if nlm can handle multiple parameters problems, and if
yes,
> was there any error in my code? How do I properly provide the gradient
for
> my function?
>
> Thanks a lot,
>
> Yuan Ji, Ph.D.
>
> Assistant Professor
> Department of Bistatistics
> The University of Texas M.D. Anderson Cancer Center
> 1515 Holcombe Blvd. - Unit 447
> Houston, TX 77030-4009
> (713)794-4153
>
More information about the R-help
mailing list