Hello, I posted this question last week and have not heard anything, I am wondering if anyone had ideas for testing a model relationship? I am working with a real-time hydrologic modeling system, and I am using R (R batch script on Linux) to create a non-linear relationship (exponential) between observed data. I want to extract the non-linear coefficients (?b? and ?m?) if the relationship can be created, if the relationship cannot be created I will use default ?b? and ?m? coefficients. In the R script I some times get an error of singular gradient matrix (see below). I want to test whether I can create the relationship (singular gradient causes the script crash) and use the model extracted coefficients or use default coefficients. Model in R batch script: fit.nls <- nls(P~(b*exp(m*Z)), start=list(m=0.015,b=0.017), control=list(maxiter=200)) Error in nlsModel(formula, mf, start, wts) : singular gradient matrix at initial parameter estimates ** the initial parameter values are also the default Specific Questions: 1) Is there a way to test fit.nls (or the data) prior to see if this error occurs. 2) Would this test be set up as an if statement? if (fit is good) {proceed model coefficients} else {use default coefficients}? Thanks for all your help, Doug -- --------------------------------- Douglas M. Hultstrand, MS Senior Hydrometeorologist Metstat, Inc. Windsor, Colorado voice: 970.686.1253 email: dmhultst at metstat.com web: http://www.metstat.com
You could look into try(). Sarah On Mon, Oct 19, 2009 at 5:49 PM, Douglas M. Hultstrand <dmhultst at metstat.com> wrote:> Hello, > > I posted this question last week and have not heard anything, I am wondering > if anyone had ideas for testing a model relationship? > > I am working with a real-time hydrologic modeling system, and I am using R > (R batch script on Linux) to create a non-linear relationship (exponential) > between observed data. I want to extract the non-linear coefficients (?b? > and ?m?) if the relationship can be created, if the relationship cannot be > created I will use default ?b? and ?m? coefficients. In the R script I some > times get an error of singular gradient matrix (see below). I want to test > whether I can create the relationship (singular gradient causes the script > crash) and use the model extracted coefficients or use default coefficients. > > Model in R batch script: > fit.nls <- nls(P~(b*exp(m*Z)), start=list(m=0.015,b=0.017), > control=list(maxiter=200)) > Error in nlsModel(formula, mf, start, wts) : > singular gradient matrix at initial parameter estimates > > ** the initial parameter values are also the default > > Specific Questions: > 1) Is there a way to test fit.nls (or the data) prior to see if this error > occurs. > 2) Would this test be set up as an if statement? > if (fit is good) {proceed model coefficients} else {use default > coefficients}? > > Thanks for all your help, > Doug >-- Sarah Goslee http://www.functionaldiversity.org