在分组数据上使用nls的问题

时间:2017-01-12 19:04:31

标签: r data-fitting nls

我试图将非线性模型拟合到具有两个不同处理组的数据集。

values <- runif(20,1000,10000)
timefornls <- rep(c(0:9), 2)
treatment <- rep(c("group1", "group2"), each=10, len=20)
datafornls <- data.frame(timefornls,treatment,values)

datafornls表示我试图适合的数据集,相当不错。我正在使用公式:X0 + p * t * exp(q * t),其中t =时间,X0,p和q是我想要估计的未知参数。参数p和q在两组之间不同,而X0在它们之间保持相同。

datafit.m1 <- nls(values ~ X0 + p[treatment] * timefornls * exp(q[treatment] * timefornls), data = datafornls, start = list(q=c(0.05,0.05), p=c(1000,1000), X0=1000))

由于p和q取决于治疗,因此使用方括号表明p和q各自具有2个治疗的2个值。使用此代码我收到错误:

Error in numericDeriv(form[[3L]], names(ind), env) : 
Missing value or an infinity produced when evaluating the model

我无法理解我做错了什么? 如果你能解决问题,请提前感谢。

0 个答案:

没有答案