Gompertz方程的多个inverse.predict()

问题描述 投票:0回答:2

在将一系列数据建模到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)
r nls
2个回答
2
投票

Gompertz函数的一般形式是

G = A * EXP(-K1 * EXP(-k2 * t))的

我们可以解析地计算这个函数的反函数,所以不需要使用inverse.predict:

T =日志(K1 /日志(A / G))/ K2


0
投票

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)
© www.soinside.com 2019 - 2024. All rights reserved.