On 19-10-2012, at 04:40, stats12 wrote: > Dear R users, > > I am trying to find the mle that involves integration. > > I am using the following code and get an error when I use the nlm function > > d<-matrix(c(1,1,0,0,0,0,0,0,2,1,0,0,1,1,0,1,2,2,1,0),nrow=10,ncol=2) > h<-matrix(runif(20,0,1),10) > > integ<-matrix(c(0),nrow=10, ncol=2) > ll<-function(p){ > for (k in 1:2){ > for(s in 1:10){ > integrand<-function(x) > x^d[s,k]*exp(-x*gamma(1+1/p))^p*p*x^(p-1)*exp(-x*h[s,k]) > integ[s,k]<-integrate(integrand,0,Inf)$value > } > } > lik<-colSums(integ) > -lik > } > initial<-c(1) > t<-nlm(ll,initial) > Error in nlm(ll, initial) : invalid function value in 'nlm' optimizer
Before the call of nlm you should insert ll(initial) to check. You'll see that your function returns a vector and not a scalar as it should. I guess that ll() should return sum(-lik) or better -sum(integ) Berend ______________________________________________ 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.