varunshivashankar <varunshivashankar <at> gmail.com> writes: > > I have a dataset > > X Y1 > 1200 1.375 > 4000 0.464 > 1333.33 0.148 > 444.44 0.047 > 148.148 0.014 > 49.383 0.005 > 16.461 0.004 > > I have to find a curve fit for the above dataset based on a 4-parameter > logistic equation viz. > > Y1 = d + ((a-d)/(1+(X/cc)^b)), where X and Y1 are the values above. > > I need to know how to solve the above equation for values a, b, c, d. >
1. They're not linear equations. 2. ?nls 3. You're going to need very good starting conditions, and a bit of good luck, to fit a 4-parameter nonlinear equation to 7 data points ... Looking at a plot of these data, the point at (1200,1.375) is a huge outlier, which is going to make it almost impossible. 4. Your equation doesn't look logistic to me, it looks hyperbolic. Are you sure you have it right? This can be done but it's quite delicate: z <- read.table(textConnection(" X Y1 1200 1.375 4000 0.464 1333.33 0.148 444.44 0.047 148.148 0.014 49.383 0.005 16.461 0.004"), header=TRUE) with(z,plot(X,Y1)) with(z[-1,],plot(X,Y1)) tmpf <- function(X,a,b,cc,d) d + ((a-d)/(1+(X/cc)^b)) curve(tmpf(x,0.5,-1,1000,0),add=TRUE) ## fix a and d to reasonable values, fit b and cc n1 <- nls(Y1~tmpf(X,a=0.7,b,cc,d=0), data=z[-1,], start=list(cc=1000,b=-1)) with(as.list(coef(n1)),curve(tmpf(x,a=0.7,b,cc=1000,d=0),add=TRUE,col=2)) ## now use b and cc as starting values, fit a and d n2 <- nls(Y1~tmpf(X,a,b=-1.721,cc=2738,d), data=z[-1,], start=list(a=0.7,d=0)) with(as.list(c(coef(n1),coef(n2))),curve(tmpf(x,a,b,cc,d),add=TRUE,col=4)) ## now fit all simultaneously n3 <- nls(Y1~tmpf(X,a,b,cc,d), data=z[-1,], start=as.list(c(coef(n1),coef(n2)))) coef(n3) with(as.list(coef(n3)),curve(tmpf(x,a,b,cc,d),add=TRUE,col=5)) ## looks OK Note that I didn't try to accommodate your outlier. That will make the problem nearly impossible. ______________________________________________ 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.