在将一系列数据建模到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)
答案 0 :(得分:2)
Gompertz函数的一般形式是
G = A * EXP(-K1 * EXP(-k2 * t))的
我们可以分析地计算这个函数的反函数,所以不需要使用inverse.predict:
T =日志(K1 /日志(A / G))/ K2
答案 1 :(得分: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)