[R] avoiding termination of nls given convergence failure
Ravi Varadhan
RVaradhan at jhmi.edu
Thu Mar 12 19:24:06 CET 2009
?try
For example,
for (i in 1:n) {
try (fit <- nls(...), silent=TRUE)
if (class(fit) != "try-error") dowhateverthatneedstobedonewiththeresults
else fit <- NA
}
Ravi.
----------------------------------------------------------------------------
-------
Ravi Varadhan, Ph.D.
Assistant Professor, The Center on Aging and Health
Division of Geriatric Medicine and Gerontology
Johns Hopkins University
Ph: (410) 502-2619
Fax: (410) 614-9625
Email: rvaradhan at jhmi.edu
Webpage: http://www.jhsph.edu/agingandhealth/People/Faculty/Varadhan.html
----------------------------------------------------------------------------
--------
-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
Behalf Of Bill Shipley
Sent: Thursday, March 12, 2009 2:13 PM
To: R-help
Subject: [R] avoiding termination of nls given convergence failure
Hello. I have a script in which I repeatedly fit a nonlinear regression to
a series of data sets using nls and the port algorithm from within a loop.
The general structure of the loop is:
for(i in 1:n){
extract relevant vectors of dependent and independent variables
estimate starting values for Amax and Q.LCP
fit<-nls(photosynthesis~fit.Mitcherlich(irradiance,Amax,LCP,Q.LCP),data=temp
,
start=list(Amax=Astart,Q.LCP=x,LCP=33),control=list(maxiter=100,tol=5e-4),
na.action=na.omit,trace=T,algorithm="port",lower=c(0,0,0))
}
Despite trying to estimate good starting values, the nls function
occasionally experiences problems with convergence. When this happens the
function stops and prints an error message, thus preventing the loop from
continuing. Is there some what of detecting the convergence problem while
preventing the nls function from stopping when this happens, so that the
loop can continue?
Bill Shipley
North American Editor, Annals of Botany
Dipartement de biologie
Universiti de Sherbrooke
Sherbrooke (Quibec) J1K 2R1
Canada
(819) 821-8000, poste 62079
(819) 821-8049 FAX
http://pages.usherbrooke.ca/jshipley/recherche/
[[alternative HTML version deleted]]
More information about the R-help
mailing list