Re: [R] nls model fitting errors

From: Peter Ehlers <ehlers_at_ucalgary.ca>
Date: Thu, 10 Jun 2010 12:06:43 -0600

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]]
>



R-help_at_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. Received on Thu 10 Jun 2010 - 18:09:43 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 10 Jun 2010 - 19:40:29 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive