s-news
[Top] [All Lists]

VS: nlme and pnlsTol

To: <s-news@lists.biostat.wustl.edu>
Subject: VS: nlme and pnlsTol
From: Rasmus Ejrnæs <as-science@greennet.gl>
Date: Thu, 19 May 2005 11:01:57 -0200
Importance: Normal
Organization: Arktisk Station
Reply-to: <as-science@greennet.gl>

 

Dear S-Plussers

 

I am using S-Plus 6.1

 

I have a data set of observations of seedlings of 3 species in 72 microplots subjected to 6 warming treatments from 11 occasions along a time gradient. A plot of data seemed to indicate that these data could be modelled with a logistic growth function.

 

 

I did the modelling using the self-starting function SSlogis():

minus.grp <- groupedData(seedlings~s.time|microplot, data="">

minus.lis <- nlsList(seedlings ~ SSlogis(s.time, Asym, xmid, scal) | microplot, data="">

minus.nlme <- nlme(minus.lis)

 

I further included species and warming treatment (measured temperature above ambient) as fixed-effects

minusFix <- fixef(minus.nlme)

options(contrasts = c("contr.treatment","contr.poly"))

minus.nlme5 <- update(minus.nlme, fixed= Asym + xmid + scal ~ warming^2+species-1, start = c(minusFix[1],0,0,0,minusFix[2],0,0,0, minusFix[3],0,0,0))

 

This actually worked well and the asymptote (Asym) and bending point (xmid) were both significantly affected by the warming treatment and xmid also by species.

 

Now, from the plot it appears that especially one species (Saxifraga) show a clear decline in seedling number at the latest occasion (September) and I have reason to believe that low counts are due to leaf senescence not death. Apparently these observations create outlying residuals in my model and I thus tried to exclude the September observations and refit the model. Unfortunately I receive an error from nlme:

 

minus.grp2 <- groupedData(seedlings~s.time|microplot, data="">

minus.lis <- nlsList(seedlings ~ SSlogis(s.time, Asym, xmid, scal) | microplot, data="">

minus.nlme <- nlme(minus.lis)

 

Problem in nlme.formula(model = structure(.Data = "" ~ SSlo..: Step halving factor reduced below minimum in PNLS step

Use traceback() to see the call stack

> traceback()

11: eval(action, sys.parent())

10: doErrorAction("Problem in nlme.formula(model = structure(.Data = "" ~ SSlogis(s.time, Asym, xmid, scal), class = \"formula\"), ..: Step halving factor reduced below minimum in PNLS step", 1000)

9: stop("Step halving factor reduced below minimum in PNLS step")

8: nlme.formula(model = structure(.Data = "" ~ SSlogis(s.time, Asym, xmid, scal), class = "formula"), data = "" fixed = list(structure(.Data = "" ~ 1, class = "formula"), structure(.Data = "">

 ~

7: NULL

6: nlme.formula(model = structure(.Data = "" ~ SSlogis(s.time, Asym, xmid, scal), class = "formula"), data = "" fixed = list(structure(.Data = "" ~ 1, class = "formula"), structure(.Data = "">

 ~

5: eval(this.call, local = sys.parent(1.))

4: do.call("nlme.formula", thisCall)

3: nlme.nlsList(minus.lis)

2: eval(_expression_(minus.nlme <- nlme(minus.lis)))

1:

Message: Problem in nlme.formula(model = structure(.Data = "" ~ SSlogis(s.time, Asym, xmid, scal), class = "formula"), ..: Step halving factor reduced below minimum in PNLS step

 

Here I got stuck – can anyone point to a way forward? I did try to modify the pnlsTol criterium in nlmeControl() but received the same error message.

 

Best wishes

 

Rasmus

 

 

Rasmus Ejrnæs

Associate Professor

Arctic Station

3953 Qeqertarsuaq

www.nat.ku.dk/as

 

<Prev in Thread] Current Thread [Next in Thread>