[R] Unexpected nls behaviour

Keith Jewell k.jewell at campden.co.uk
Fri Aug 1 17:31:29 CEST 2008


Hi everyone,

I thought that for a selfStart function, these two should be exactly 
equivalent
> nls(Aform, DF)
> nls(Aform, DF, start=getInitial(Aform, DF))
but in this example that is not the case in R (although it is in S-plus 
V6.2)
------------------------------
SSbatch<-selfStart(
model=function(Batch, Coeffs)
{
Coeffs[Batch]

}
,initial=function(mCall, data, LHS)
{
 # Estimate coefficients as mean of each batch
        xy <- sortedXyData(mCall[["Batch"]], LHS, data)
 Batch <- data[[as.character(mCall[["Batch"]])]]
 # check Batch is successive integers starting at 1
 if ((min(xy$x) !=1) | (any(diff(xy$x)!=1))) stop(
   "Batch is not a successive integers sequence")
 Lval <- list(xy$y)
 names(Lval) <- mCall["Coeffs"]
 Lval
}
)
DF <- data.frame(A=c(0.9, 1.1, 1.9, 2.0, 2.1, 2.9, 3.0), 
Batch=c(1,1,2,2,2,3,3))
Aform <- formula(A~SSbatch(Batch,cA))
nls(Aform, DF, start=getInitial(Aform, DF))
nls(Aform, DF)
------------------------------------
Don't ask why I'd want such a silly selfStart, that's a long story.
I guess wherever I would have used nls(Aform, DF)
I could use nls(Aform, DF, start=getInitial(Aform, DF))
but that seems clumsy.

Can anyone point out my mistake? Or is this a limitation of nls in R (I 
hesitate to use the b*g word).

Thanks in advance,

Keith Jewell
----------------------------------

I don't think it's relevant but, for completeness:

> sessionInfo()

 version 2.7.0 (2008-04-22)
i386-pc-mingw32

locale:
LC_COLLATE=English_United Kingdom.1252;LC_CTYPE=English_United 
Kingdom.1252;LC_MONETARY=English_United 
Kingdom.1252;LC_NUMERIC=C;LC_TIME=English_United Kingdom.1252

attached base packages:
[1] stats     graphics  grDevices datasets  tcltk     utils     methods 
base

other attached packages:
[1] xlsReadWrite_1.3.2 svSocket_0.9-5     svIO_0.9-5         R2HTML_1.58 
svMisc_0.9-5       svIDE_0.9-5

loaded via a namespace (and not attached):
[1] tools_2.7.0 VGAM_0.7-7



More information about the R-help mailing list