>
> This is one data set.  I have used linear models, but as these data reflect
> fish consuming energy during a starvation period, there is a lower
> asymptote.  I also realize that data is rather scattered and not the
> cleanest.  I am interested in looking at how fast the animals reach the
> asymptote.  With three different temperatures, I expect that the three
> curves are different.  I feel like I am making this more difficult than it
> really is.
>
> Data...
>
> Days<-c(12, 12, 12, 12, 22, 22, 22, 22, 32, 32, 32, 32, 37, 38, 38, 39, 39,
> 39, 39, 39, 39, 39,  1,  1,  1,  1)
> joules<-c(8.782010,  8.540524,  8.507526, 11.296904,  4.232690, 13.026588,
> 10.213342,  4.771482,  4.560359,  6.146684, 9.651727,  8.064329,  9.419335,
> 7.129264,  6.079012,  7.095888, 17.996794,  7.028287,  8.028352,  5.497564,
> 11.607090,  9.987215, 11.065307, 21.433094, 20.366385, 22.475717)
> X11()
> par(cex=1.6)
> plot(joules~Days,xlab="Days after fasting was initiated",ylab="Mean energy
> per fish (KJ)")
> model<-nls(joules~a+b*exp(-c*Days),start=list(a=8,b=9,c=-.229),
> control=list(minFactor=1e-12),trace=TRUE)
> summary(model)
>
> As always, thank you...keith
>
>
>
>
> On Fri, Aug 27, 2010 at 10:59 AM, Peter Ehlers <ehlers@ucalgary.ca> wrote:
>
>> Just a small fix to my solution; inserted below.
>>
>>
>> On 2010-08-27 3:51, Peter Ehlers wrote:
>>
>>> On 2010-08-26 15:52, Marlin Keith Cox wrote:
>>>
>>>> I agree. I typically do not use non-linear functions, so am seeing the
>>>> "art" in describing functions of non-linear plots. One last thing. I
>>>> tried
>>>> to use a self-starting Weibull function with the posted data and
>>>> received
>>>> the following error.
>>>>
>>>> model<-nls(Level~ SSweibull(Time,Asym,Drop,lrc,pwr))
>>>> Error in qr.default(.swts * attr(rhs, "gradient")) :
>>>> NA/NaN/Inf in foreign function call (arg 1)
>>>>
>>>> I do not understand the error statement.
>>>>
>>>
>>> The problem is the zeros in your independent variable (see
>>> the definition of coefficient 'lrc'). You can try using
>>> SSweibull(Time + 0.000001, ...). But a better way would
>>> be to use
>>>
>>> init <- getInitial(Level~ SSweibull(Time,Asym,Drop,lrc,pwr))
>>>
>>
>> This needs a 'data=' argument for getInitial(). I had put
>> the variables in a data.frame, then modified the code by
>> deleting 'data=dat', forgetting that getInitial() does not
>> default to looking in the global environment for its data.
>> Easily fixed with
>>
>>  init <- getInitial(Level~ SSweibull(Time,Asym,Drop,lrc,pwr),
>>                    data=.GlobalEnv)
>>
>> or, of course, with an appropriate data.frame.
>>
>>
>>  -Peter Ehlers
>>
>>
>>
>>> (which will often give the converged values). You can
>>> follow up with
>>>
>>> fm <- nls(Level ~ Asym-Drop*exp(-exp(lrc)*Time^pwr), start = init)
>>>
>>> -Peter Ehlers
>>>
>>>
>>>> kc
>>>> On Thu, Aug 26, 2010 at 1:44 PM, Bert Gunter<gunter.berton@gene.com>
>>>> wrote:
>>>>
>>>> My opinions only below; consume at your own risk.
>>>>>
>>>>> On Thu, Aug 26, 2010 at 2:20 PM, Marlin Keith Cox<marlinkcox@gmail.com
>>>>> >
>>>>> wrote:
>>>>>
>>>>>> The background you requested are energetic level (joules) in a group
>>>>>> of
>>>>>> starved fish over a time period of 45 days. Weekly, fish (n=5) were
>>>>>>
>>>>> removed
>>>>>
>>>>>> killed and measured for energy. This was done at three temperatures. I
>>>>>>
>>>>> am
>>>>>
>>>>>> comparing the rates at which the fish consume stored body energy at
>>>>>> each
>>>>>>
>>>>> of
>>>>>
>>>>>> the three temperatures. Initial data looks like the colder fish
>>>>>> have different rates (as would be expected) than do warmer fish. In
>>>>>> all
>>>>>> cases the slope is greatest at the beginning of the curve and flattens
>>>>>>
>>>>> after
>>>>>
>>>>>> several weeks. This is what is interesting - where in time the line
>>>>>> starts to flatten out.
>>>>>>
>>>>>> By calculating a non-linear equation of a line, I was hoping to use
>>>>>> the
>>>>>> first and second derivatives of the function to compare and explain
>>>>>> differences between the three temperature.
>>>>>>
>>>>>
>>>>> Bad idea. Derivatives from fitted curves are generally pretty
>>>>> imprecisely determined. And you don't need them: If the curves are
>>>>> being (adequately/appropriately) parameterized as Weibull, then all
>>>>> the information is in the parameters anyway, which can be directly
>>>>> modeled, fitted, and compared as functions of temperature -- provided
>>>>> that the design permits this (i.e. provides sufficient precision for
>>>>> the characterizations/comparisons).
>>>>>
>>>>> If you don't know how to do this, seek further statistical help.
>>>>>
>>>>> --
>>>>> Bert Gunter
>>>>> Genentech Nonclinical Statistics
>>>>>
>>>>>
>>>>>
>>>>>> The data originally posted was an example of one of the curves
>>>>>>
>>>>> experienced.
>>>>>
>>>>>>
>>>>>> kc
>>>>>>
>>>>>> On Thu, Aug 26, 2010 at 9:48 AM, David Winsemius<
>>>>>> dwinsemius@comcast.net
>>>>>> wrote:
>>>>>>
>>>>>>
>>>>>>> On Aug 26, 2010, at 1:35 PM, Marlin Keith Cox wrote:
>>>>>>>
>>>>>>> I need the parameters estimated for a non-linear equation, an example
>>>>>>>
>>>>>> of
>>>>>
>>>>>>  the
>>>>>>>> data is below.
>>>>>>>>
>>>>>>>>
>>>>>>>> # rm(list=ls()) I really wish people would add comments to
>>>>>>>>
>>>>>>> destructive
>>>>>
>>>>>>  pieces of code.
>>>>>>>>
>>>>>>>>
>>>>>>> Time<-c( 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4,
>>>>>>>
>>>>>>>> 4, 4, 5, 5, 5, 5, 5, 8, 8, 8, 8, 8)
>>>>>>>> Level<-c( 100, 110, 90, 95, 87, 60, 65, 61, 55, 57, 40, 41,
>>>>>>>>
>>>>>>> 50,
>>>>>
>>>>>>  47,
>>>>>>>> 44, 44, 42, 38, 40, 37, 37, 35, 40, 34, 32, 20, 22, 25,
>>>>>>>>
>>>>>>> 27,
>>>>>
>>>>>>  29)
>>>>>>>> plot(Time,Level,pch=16)
>>>>>>>>
>>>>>>>>
>>>>>>> You did not say what sort of "non-linear equation" would best suit,
>>>>>>> nor
>>>>>>>
>>>>>> did
>>>>>
>>>>>> you offer any background regarding the domain of study. There must be
>>>>>>>
>>>>>> many
>>>>>
>>>>>> ways to do this. After looking at the data, a first pass looks like
>>>>>>>
>>>>>> this:
>>>>>
>>>>>>
>>>>>>> lm(log(Level) ~Time )
>>>>>>>>
>>>>>>>
>>>>>>> Call:
>>>>>>> lm(formula = log(Level) ~ Time)
>>>>>>>
>>>>>>> Coefficients:
>>>>>>> (Intercept) Time
>>>>>>> 4.4294 -0.1673
>>>>>>>
>>>>>>> exp(4.4294)
>>>>>>>>
>>>>>>> [1] 83.88107
>>>>>>>
>>>>>>>> points(unique(Time), exp(4.4294 -unique(Time)*0.1673), col="red",
>>>>>>>>
>>>>>>> pch=4)
>>>>>
>>>>>>
>>>>>>> Maybe a Weibull model would be more appropriate.
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> David Winsemius, MD
>>>>>>> West Hartford, CT
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>> [[alternative HTML version deleted]]
>>>>>>
>>>>> >
>>>>>
>>>>>> ______________________________________________
>>>>>> R-help@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<http://www.r-project.org/posting-guide.html>
>>>>> <http://www.r-project.org/posting-guide.html>
>>>>>
>>>>> and provide commented, minimal, self-contained, reproducible code.
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Bert Gunter
>>>>> Genentech Nonclinical Biostatistics
>>>>> 467-7374
>>>>> http://devo.gene.com/groups/devo/depts/ncb/home.shtml
>>>>>
>>>>>
>>>>
>>>>
>>>
>
>
> --
> M. Keith Cox, Ph.D.
> Alaska NOAA Fisheries, National Marine Fisheries Service
> Auke Bay Laboratories
> 17109 Pt. Lena Loop Rd.
> Juneau, AK 99801
> Keith.Cox@noaa.gov
> marlinkcox@gmail.com
> U.S. (907) 789-6603
>



-- 
M. Keith Cox, Ph.D.
Alaska NOAA Fisheries, National Marine Fisheries Service
Auke Bay Laboratories
17109 Pt. Lena Loop Rd.
Juneau, AK 99801
Keith.Cox@noaa.gov
marlinkcox@gmail.com
U.S. (907) 789-6603

	[[alternative HTML version deleted]]

