Hello.  I am working on an analysis involving the nonlinear mixed model
function (nlme) in R.  The data consist of measures of carbon fixation
by leaves as a function of light intensity and the parametric function
(standard in this area because it has a biological interpretation) is a
non-rectangular hyperbola.  I cannot get the nonlinear mixed model
(nlme) function to converge cleanly. I am hoping that others have found
strategies for getting starting values that might solve this problem.  I
have a request (below), some details of the problem, and then a question
(at the end of this posting).

 

Request 1:  Any documents that you can point to would be welcome,
especially if they involve a non-rectangular hyperbola.  I have already
searched the archives and have read the book by Pinheiro & Bates (2000)
and, although they give many useful suggestions, none seem to work in my
case.  

 

Details: 

 

In particular, I can obtain convergence for each group (plant)
separately using either nls or nlsList, but cannot get convergence using
nlme.

 

My function is a non-rectangular hyperbola with 4 parameters (theta, Am,
alpha, Rd):

 

#Nonrectangular hyperbola for photosynthesis

# myfunct

(1/(2*theta))*(

alpha*Irr + Am -sqrt((alpha*Irr+Am)^2-4*alpha*theta*Am*Irr))-Rd

 

I have written a self-starting function (NRhyperbola) to provide
starting values. This self-starting function works.  When I use this
self-starting function with nlsList using a data set with the grouping
variable (and after removing a few groups for which there is an
insufficient range of the independent variable to provide estimates), I
get convergence and reasonable estimates.  Similarly if I use nls
separately for every group I obtain reasonable estimates of the 4
parameters.

 

If I then use the fixed effect values from nlsList (i.e. the average
value of each parameter over the groups) to do a nonlinear mixed model
(nlme) using the fixed effects estimates from nlsList, I fail to
converge after 50 iterations and get two types of  warning:

 

(1): "NaNs produced in: sqrt(.expr10)"  - this is because the parameter
values drift into regions in which the sqrt in the function is
undefined.

 (2) "Singular precision matrix in level -1, block 1". - I do not know
what this warning means.

 

I have tried many different changes in the starting values and none
work.

 

Question: what does the second warning mean?

 

Thanks for any help.

 

Bill Shipley

 


	[[alternative HTML version deleted]]


