[R] using nls to fit a four parameter logistic model
Spencer Graves
spencer.graves at pdf.com
Tue Aug 17 16:29:35 CEST 2004
In your second model, log(conc) is negative for conc = 0.001.
This observation will generate NA for (log(conc)/xmid)^scal unless scal
is an integer or xmid is also negative. In the latter case,
(log(conc)/xmid)^scal will be NA for all but that last value unless scal
is an integer.
What do your biological references do with this model for
concentrations less than 1?
If you delete that observation, the algorithm can still die
testing a value for xmid <= 0. To avoid these cases, I routine
parameterize problems like this in terms of ln.xmid, something like the
following:
log(il10)~A+(B-A)/(1+(log(conc)/exp(ln.xmid))^scal).
hope this helps. spencer graves
sraghavan at mmm.com wrote:
>
>Shalini Raghavan
>3M Pharmaceuticals Research
>Building 270-03-A-10, 3M Center
>St. Paul, MN 55144
>E-mail: sraghavan at mmm.com
>Tel: 651-736-2575
>Fax: 651-733-5096
>
>----- Forwarded by Shalini Raghavan/US-Corporate/3M/US on 08/16/2004 11:25
>AM -----
>
> Shalini
> Raghavan/US-Corpo
> rate/3M/US To
> r-help at stat.math.ethz.ch.
> 08/16/2004 08:57 cc
> AM
> Subject
> Fw: using nls to fit a four
> parameter logistic model
>
>
>
>
>
>
>
>
>
>
>
>
>
>I am working on what appears to be a fairly simple problem for the
>following data
>
> test=data.frame(cbind(conc=c(25000, 12500, 6250, 3125, 1513, 781, 391,
>195, 97.7, 48.4, 24, 12, 6, 3, 1.5, 0.001),
> il10=c(330269, 216875, 104613, 51372, 26842, 13256, 7255, 3049, 1849, 743,
>480, 255, 241, 128, 103, 50)))
>
>
>>test
>>
>>
> conc il10
>1 25000.000 330269
>2 12500.000 216875
>3 6250.000 104613
>4 3125.000 51372
>5 1513.000 26842
>6 781.000 13256
>7 391.000 7255
>8 195.000 3049
>9 97.700 1849
>10 48.400 743
>11 24.000 480
>12 12.000 255
>13 6.000 241
>14 3.000 128
>15 1.500 103
>16 0.001 50
>
>I am able to fit the above data to the equation
>
>
>
>>nls(log(il10)~A+(B-A)/(1+exp((xmid-log(conc))/scal)),data=test,
>>
>>
>+ start = list(A=log(0.001), B=log(100000),
>+ xmid=log(6000),scal=0.8))
>Nonlinear regression model
> model: log(il10) ~ A + (B - A)/(1 + exp((xmid - log(conc))/scal))
> data: test
> A B xmid scal
> 3.796457 14.705159 6.410144 2.507653
> residual sum-of-squares: 0.1667462
>
>
>But in attempting to achieve a fit to what is commonly known as the hill
>equation, which is a four parameter fit that is used widely in biological
>data analysis
>
>nls(log(il10)~A+(B-A)/(1+(log(conc)/xmid )^scal),data=test,
>+ start = list(A=log(0.001), B=log(100000), xmid=log(6000),scal=0.8))
>
>Nonlinear regression model
> model: log(il10) ~ A + (B - A)/(1 + (log(conc)/xmid )^scal)
>
>Error in numericDeriv(form[[3]], names(ind), env) :
> Missing value or an Infinity produced when evaluating the model
>
>
>
>Please would someone offer a suggestion
>
>Shalini
>
>______________________________________________
>R-help at stat.math.ethz.ch mailing list
>https://stat.ethz.ch/mailman/listinfo/r-help
>PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>
>
More information about the R-help
mailing list