[R] Beginners Question: Make nlm work

Peter Dalgaard p.dalgaard at biostat.ku.dk
Thu Aug 26 12:22:40 CEST 2004


Peter Dalgaard <p.dalgaard at biostat.ku.dk> writes:

> Arne Henningsen <ahenningsen at email.uni-kiel.de> writes:
> 
> > Hi,
> > 
> > did you try "nls" (nonlinear least squares)? "?nlm" says: 
> > "For nonlinear regression, 'nls' may be better".
> > Another option would be "optim".
> 
> Actually, just using nlm  according to specs might help:
> 
> > > setwd("~/Biology/R_versuch")
> > > mydata<-read.table("YJG45-7_Growth.dat")
> > > x<-mydata$V1
> > > y<-mydata$V2
> > > VH <- function(p) y ~ p[1]/(1+((p[1]-0.008)/0.008)*exp(-(p[2]*x)))
> 
> Make that  
> 
> VH <- function(p) sum((y - p[1]/(1+((p[1]-0.008)/0.008)*exp(-(p[2]*x))))^2)
> 
> > > plot(x, y, xlab="Time (h)",ylab=expression(OD[600][~nm]),las=1)
> > > out <- nlm(VH, p = c(3, 4e-3), hessian = TRUE)
> 
> I'm quite surprised that the other thing gives a result at all!

Ah, sorry. That was fixed in another branch of this thread. So much
for skimming emails in the morning... 

It would be good to see that actual output inside "out". However, the
real problem seems to be that the nlm algorithm is quite sensitive to
getting the typsize argument approximately right. nlm(VH, p=c(3,4e-3),
typsize=c(1,1e-3), ....) appears to fare considerably better.

-- 
   O__  ---- Peter Dalgaard             Blegdamsvej 3  
  c/ /'_ --- Dept. of Biostatistics     2200 Cph. N   
 (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)             FAX: (+45) 35327907




More information about the R-help mailing list