[R] Non-linear regression problem: R vs JMP (long)

Andrew Robinson andrewr at uidaho.edu
Wed Mar 10 17:19:25 CET 2004


Dear R friends,

I know that this topic has been mulled over before, and that there is a 
substantial difference between the convergence criteria for JMP and those for 
R.  I apologize that this is somwehat raking cold coals.

Summary: 

A model/data combination achieves convergence in JMP, and survives a 
reasonably rigorous examination (sensible parameter estimates, well-behaved 
surface, confidence intervals exclude 0).  The same combination fails to 
achieve convergence in R despite starting from the estimates reported in JMP.  
What can I do?

Full story:

I am collaborating on a project which presently requires the fit of a seven 
parameter non-linear function to 874 observations.  The function is:

freeze.d <- deriv3(~ dbh^b * u^dbh * a1 * smi^a2 * exp(a3*pbal) *
  (1 + a4*exp(a5*ba)) * cr^a6 * dh5^a7,
  c("a1","a2","a3","a4","a5","a6","a7","b","u"),
  function(dbh, smi, pbal, ba, cr, dh5, a1, a2, a3, a4, a5, a6, a7, b, u){})

The dbh, smi, pbal, ba, cr, and dh5, are known.

The data do not require the level of intricacy reflected in the function. It 
is debatable whether they support it. However, my collaborator is anxious to 
avoid linear models because of their relatively poor extrapolative 
properties.  So, that is an ongoing discussion.

He has achieved convergence using non-linear least squares in JMP.  JMP uses 
the union of three criteria: small change in objective function, small change 
in parameter values, and small change in gradient.  He can achieve 
convergence in any of the three by reducing the other two sufficiently. He 
arrives at the same point of convergence from a range of different starting 
values.  He gets garbage solutions for other starting points, but recognizes 
these as such and explores elsewhere.  At the point of convergence the model 
has reasonable behavior, the confidence intervals for all the parameters 
exclude 0, the surface seems to fit the data just fine, and the parameter 
estimates all make sense. Some of them are highly correlated (up to -0.95) 
but by no means all.  In short, it seems to me to be a very thorough and 
careful effort.

I'm trying to reproduce the model in R using nls.  The convergence criterion 
is different than JMP: it's a relative-offset convergence criterion. Even if 
I start with his converged parameter estimates, nls will consume as many 
iterations as I allow it and produce an error, e.g. "number of iterations 
exceeded maximum of 50000".  I have the trace on, and for the last n-2 
iterations the parameter estimates do not change, at least in the digits that 
trace provides. Increasing the tolerance does not seem to help.  

So, I wonder: is it possible that JMP could produce results that are garbage 
but stand up to reasonable scrutiny? Alternatively, is there some further 
element of the fit that I should advise him to examine?  I've been reading 
Bruce McCullough's work and I know that for example S-plus was one of only 
two packages to declare "ns" instead of providing estimates with 0 accurate 
digits.  But, how does one know that is what is happening in any given 
situation, if the model looks good?  Finally, it's possible that I am using 
nls wrongly: here is my call

freeze.nls.d.1 <-
    nls(dd.5 ~ freeze.d(dbh.0, smi, pbal.0, sba.0, cr.0, dh.5,
                        a1, a2, a3, a4, a5, a6, a7, b, u),
        data = trees, control=ctl.obj, trace=T,
        start = list(b = 0.2, u = 1, a1 = 0.4, a2 = -0.1, a3 = -0.01, a4 = 3, 
a5 = -0.02, a6 = 0.25, a7 = 0.40))

Any insights will be appreciated!

Andrew
-- 
Andrew Robinson                      Ph: 208 885 7115
Department of Forest Resources       Fa: 208 885 6226
University of Idaho                  E : andrewr at uidaho.edu
PO Box 441133                        W : http://www.uidaho.edu/~andrewr
Moscow ID 83843                      Or: http://www.biometrics.uidaho.edu
No statement above necessarily represents my employer's opinion.




More information about the R-help mailing list