[R] nls model fitting errors
Peter Ehlers
ehlers at ucalgary.ca
Thu Jun 10 20:06:43 CEST 2010
On 2010-06-10 8:27, Graves, Gregory wrote:
> What am I failing to understand here?
>
Several things; see below.
>
>
> The script below works fine if the dataset being used is
>
> DNase1<- DNase[ DNase$Run == 1, ] per the example given in
> help(nlrob).
>
> Obviously, I am trying to understand how to use nls and nlrob to fit
> curves to data using R.
>
>
>
> #package=DAAG
>
> attach(codling)
>
> plot(pobs~dose)
>
> #next command returns 'step factor reduced below min factor error'
>
> m.nls<- nls( pobs ~ a/(1 + exp(( b - log(dose) )/c ) ),
>
> data = codling,
>
> start = list( a = 3, b = 0, c = 1 ),
>
> trace = TRUE )
>
> s<-seq(min(pobs), max(pobs), .01)
If pobs is your y-value (response) then what is 's' for?
>
> p.nls<-predict(m.nls,list(pobs=s))
Ah, you want predicted *response* values; so feed
appropriate *predictor* values to predict().
But I don't see how this would not give you an error
anyway if your nls() call resulted in an error.
>
> lines(s,p.nls,col='blue') #generates 'x and y lengths differ' error
This error would result from incorrectly generating p.nls,
(but I don't see how you got R to give you that anyway).
I have 4 suggestions:
1. Define a new variable ldose=log(dose);
It's usually less confusing to work on
the log-scale in these cases.
Then plot pobs vs ldose.
2. From the plot you should notice that the
left asymptote is not likely to be zero
(which is what your model assumes). It's
roughly 0.2.
3. The right asymptote should probably be 1.0
since pobs is a proportion. So a start value
of a=3 in your model makes no sense as you
would also quickly see if you plotted the
curve represented by your model on the
plot of the data (use: curve(...,add=TRUE)).
4. Try this model:
pobs ~ (A + exp((ldose - B)/C)) / (1 + exp((ldose - B)/C))
with starting values: A = 0.2, B = 3, C = 1
-Peter Ehlers
>
>
> Gregory A. Graves, Lead Scientist
>
> Everglades REstoration COoordination and VERification (RECOVER)
>
> Restoration Sciences Department
>
> South Florida Water Management District
>
> Phones: DESK: 561 / 682 - 2429
>
> CELL: 561 / 719 - 8157
>
>
>
>
> [[alternative HTML version deleted]]
>
More information about the R-help
mailing list