I am trying to fit a curve to a cumulative mortality curve (logistic) where y 
is the cumulative proportion of mortalities, and t is the time in hours (see 
below). Asym. at 0 and 1
> y
 [1] 0.00000000 0.04853859 0.08303777 0.15201970 0.40995074 0.46444992 
0.62862069 0.95885057 1.00000000
[10] 1.00000000 1.00000000
> t
 [1]  0 13 20 24 37 42 48 61 72 86 90

I tried to find starting values for a Gompertz non-linear regression by 
converting the equation (y~1*exp(-beta*exp(-gamma*t)) to a linear form per 
Dalgaard "Introductory Statistics with R" pg.279-280. But got this Error 
message:

> lm(log(0-log(y))~t)
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) : 
  NA/NaN/Inf in foreign function call (arg 4)

I tried to change all by 0 and 1 values to non-zero and non-one values (yy and 
tt below), and was able to get starting estimates.

> yy<-c(0.000000001,0.04853859, 0.08303777, 0.15201970, 0.40995074, 0.46444992, 
> 0.62862069, 0.95885057, 0.9999999999,0.999999999999,0.999999999999)
> tt<-c(0.0000000001,13,20,24,37,42,48,61,72,86,90)

> lm(log(0-log(yy))~tt)

Call:
lm(formula = log(0 - log(yy)) ~ tt)

Coefficients:
(Intercept)           tt  
     9.5029      -0.3681 

However, when I plug those values into the nls function, I get an error message 
about the "getInitial" method

> nlsout<-nls(y~1*exp(-beta*exp(-gamma*t),start=c(beta=exp(9.5),gamma=.368)));summary(nlsout)
Error in getInitial.default(func, data, mCall = as.list(match.call(func,  : 
  no 'getInitial' method found for "function" objects

Can anyone help clarify how I can find the parameters for a best-fit curve for 
this data? Thanks!!

Sean
        [[alternative HTML version deleted]]

______________________________________________
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.

Reply via email to