# # A self-started function for the four parameter (b, c, d, e) log-logistic model # # f(x) = c + (d-c)/(1 +(x/e)^b) # # xpdf . /EBook/Nonlinear_Regression_with_R.pdf 69 & # Eq. 5.5 # logLogisticModel = function(predictor, b, c, d, e){ c + (d-c)/(1 + (predictor/e)^b) } logLogisticModelInit = function(mCall, LHS, data){ xy = sortedXyData(mCall[['predictor']], LHS, data) c0 = min(xy$y)* 0.9 d0 = max(xy$y)* 1.1 Y = log((d0 - c0)/(xy$y - c0) - 1) LX = log(xy$x) lmFit = lm(Y ~ LX) coefs = as.double(coef(lmFit)) b0 = coefs[2] loge0 = -coefs[1]/b0 e0 = exp(loge0) value = c(b0, c0, d0, e0) names(value)= mCall[c('b', 'c', 'd', 'e')] value } SSlogLogistic = selfStart(logLogisticModel, logLogisticModelInit, c('b', 'c', 'd', 'e'))