Hi, When you report errors please send a reproducible example that will allow us to better help you. At a minimum, you should cut and paste the actual call and the error message.
I think the problem is that you should only have parameters as arguments, i.e. only c and z should be in the argument list to nll(). This works: Predict <- function(M,c,z){ v = c*M^z return(v) } nll <- function(c,z){ n<-length(M) logl<- -.5*n*log(2*pi) -.5*n*log(s) - (1/(2*s))*sum((V-Predict(M,c,z))^2) return(-logl) } M <- rexp(130) V <- runif(130) s <- 200 mle(nll,start=list(c=0.01,z=2.1)) > mle(nll,start=list(c=0.01,z=2.1)) Call: mle(minuslogl = nll, start = list(c = 0.01, z = 2.1)) Coefficients: c z 0.48547691 -0.01018601 > Hope this helps, Ravi. ____________________________________________________________________ Ravi Varadhan, Ph.D. Assistant Professor, Division of Geriatric Medicine and Gerontology School of Medicine Johns Hopkins University Ph. (410) 502-2619 email: rvarad...@jhmi.edu ----- Original Message ----- From: Anita Narwani <anitanarw...@gmail.com> Date: Wednesday, July 7, 2010 9:11 pm Subject: [R] Using nlm or optim To: r-help@r-project.org > Hello, > I am trying to use nlm to estimate the parameters that minimize the > following function: > > Predict<-function(M,c,z){ > + v = c*M^z > + return(v) > + } > > M is a variable and c and z are parameters to be estimated. > > I then write the negative loglikelihood function assuming normal errors: > > nll<-function(M,V,c,z,s){ > n<-length(Mean) > logl<- -.5*n*log(2*pi) -.5*n*log(s) - (1/(2*s))*sum((V-Predict(Mean,c,z))^2) > return(-logl) > } > > When I put the Mean and Variance (variables with 136 observations) > into this > function, and estimates for c,z, and s, it outputs the estimate for the > normal negative loglikelihood given the data, so I know that this works. > > However, I am unable to use mle to estimate the parameters c, z, and > s. I do > not know how or where the data i.e. Mean (M) and Variance (V) should > enter > into the mle function. I have tried variations on > > mle(nll,start=list(c=0.01,z=2.1,s=200)) including > mle(nll,start=list(M=Mean,V=Var, c=0.01,z=2.1,s=200)) > > I keep getting errors and am quite certain that I just have a syntax > error > in the script because I don't know how to enter the variables into MLE. > > Thanks for your help, > Anita. > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list > > PLEASE do read the posting guide > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org 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.