[R] sampling and nls formula

Susan Imholt smimholt at excite.com
Tue Feb 7 01:06:34 CET 2006


Hello,

I am trying to bootstrap a function that extracts the log-likelihood value and the nls coefficients from an nls object.  I want to sample my dataset (pdd) with replacement and for each sampled dataset, I want to run nls and output the nls coefficients and the log-likelihood value.

Code:
x<-c(1,2,3,4,5,6,7,8,9,10)
y<-c(10,11,12,15,19,23,26,28,28,30)
pdd<-data.frame(x,y)

i<-sample(10, replace=TRUE)

pdd.lik.coef<-function(data,i){
     d<-data[i,]
     pdd.nls<-nls(d$y~(a*(d$x)^2)/(b+(d$x)^2), data=pdd, start = list(a = 30, b = 36), trace=FALSE)
     pdd.logLik<-logLik(pdd.nls)
     coeff <- coef(pdd.nls)
     lik.coef <- c(pdd.logLik, coeff)
}

pdd.boot<-boot(data=pdd, statistic=pdd.lik.coef, R=1000)
pdd.boot$t

My problem lies in the pdd.lik.coef function. It seems that nls recognizes all letters in the formula d$y~(a*(d$x)^2)/(b+(d$x)^2) as parameters, so "d$y" and "d$x" in the formula aren't being recognized properly to be sampled, rather the "d" is interpreted as a parameter.  When I try to bootstrap this function, I get an error message: "Error in eval(expr, envir, enclos) : object "d" not found" (because I didn't specify an estimate for d as a parameter, since I didn't intend for it to be a parameter).  

Any suggestions?

Thanks,
Susie Imholt
Master's Candidate
Huxley College of the Environment
Western Washington University
Bellingham, WA  USA




_______________________________________________
Join Excite! - http://www.excite.com
The most personalized portal on the Web!




More information about the R-help mailing list