[R-sig-ME] Difficulties fitting steeply rising sigmoid Emax functions

Rob Forsyth r.j.forsyth at newcastle.ac.uk
Fri Nov 30 18:16:31 CET 2007

I would very much appreciate help with the following problem. I have a  
simulated dataset comprising a sigmoid Emax function  
(E0+Emax*Dose^Hill)/(D50^Hill+Dose^Hill)) with added error terms. I am  
wanting to create nlsList() models to read back estimates of the  
original E0, Emax, D50 and Hill but get singular gradient and other  

I realise poor starting estimates will be a large part of the problem.  
It's quite a demanding dataset with some very high values of Hill  
(creating steeply rising curves which make locating D50 tricky) and  
significant "noise" from the error terms. I have written a selfStart  
sigmoid Emax function deriving initial estimates from a linear  
regression of log(theta/1-theta)~log(Dose) (where theta = (Emax-E0)/ 
Emax, which has slope of Hill and intercept of -Hill*logD50) however  
this does not perform well enough in this dataset and I'd appreciate  
any suggestions for more robust algorithms. I am aware that taking the  
log of the X axis converts this to the four-parameter logistic  
function but the SSfpl() function does not perform much better.

As an alternative since this is simulated data I do of course have  
access to the "real" values for E0, Emax, D50 and Hill (they are  
indeed present in the groupedData object I am trying to fit) but I am  
uncertain of the syntax required to utilise them - also in due course  
I want to create an nlme() model of the data: will this approach break  
if I do this?


Rob Forsyth

More information about the R-sig-mixed-models mailing list