I'm using nls to fit a variety of different models. Here I use SSgompertz as an example.
I want the ability to fix one (or more) of the coefficients that would normally be optimised (e.g. fix b3=0.8). Examples; based on and using data from example(SSgompertz) #--------------------- # vanilla call to nls, no coefficients fixed, works fine nls(density ~ SSgompertz(log(conc), Asym, b2, b3), data = DNase.1) #------------------------------------- # naive attempt to fix one parameter. I don't believe the error message nls(density ~ SSgompertz(log(conc), Asym, b2, b3=0.8), data = DNase.1) # Error in nlsModel(formula, mf, start, wts) : # singular gradient matrix at initial parameter estimates #-------------------------------- # fix parameter and use explicit start values works fine nls(density ~ SSgompertz(log(conc), Asym, b2, b3=0.8), data = DNase.1, start=list(Asym=3, b2=2)) #------------------------ # getInitial returns third coeff, treating value as a name getInitial(density ~ SSgompertz(log(conc), Asym=a, b2=b, b3=0.8), data = DNase.1) a b 0.8 4.6033338 2.2713391 0.7164666 I guess the best approach in principle is to change the initial attribute so it only estimates and returns values of those coefficients for which is.name(mCall[coef]) == TRUE. BUT,that means handling all combinations of fixed coefficients so it's a bit of work even for one model. I'm working with a large number of models and really don't want to face all that work! An alternative would be for nls to recognise fixed coefficients and omit their values from the start list; the other coefficients might not be optimal for the values of the fixed, but it does seem to work and wouldn't need all those SSxxx altering. BUT I don't want to get into nls internals. Any suggestions? Thanks in advance, Keith J ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.