Gompertz 方程的多个 inverse.predict()

Multiple inverse.predict() for Gompertz equation

将一系列数据建模为 Gompertz 方程后,我想根据给定 y 的输出参数预测 x 轴上的值。 但是,predict() 仅预测给定 x 的 y 值,而 inverse.predict() 仅针对单个值而不是 nlsList 值进行预测。

有直接的方法吗?

#Example data
data<-data.frame(x=c(0,1,2,4,8,16,32,64,0,1,2,4,8,16,32,64,0,1,2,4,8,16,32,64),y=c(70,90,160,250,410,510,610,650,NA,NA,NA,NA,NA,NA,NA,NA,70,90,160,250,410,510,610,650),GROUPING=c(1,1,1,1,1,1,1,1,45,45,45,45,45,45,45,45,643,643,643,643,643,643,643,643))
Parameters<-nlsList(y~SSgompertz(x, Asym, xmid, scal)|GROUPING, data=data, na.action = na.omit)
Value_of_y<-300
inverse.predict(Parameters, Value_of_y)

Gompertz 函数的一般形式是

G=A*exp(-k1*exp(-k2*t))

我们可以通过解析的方式计算这个函数的反函数,所以不用inverse.predict:

t=log(k1/log(A/G))/k2

SSgompertz 中 Gompertz 的形式是:

y = Asym*exp(-b2*b3^x)

所以倒数是:

x = log((log(y / Asym) - log(Asym)) / -b2) / log(b3)

可以简化为:

x = log( log(y / Asym) / -b2) / log(b3)