首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从nls SSlogis逻辑增长模型计算加倍时间?

如何从nls SSlogis逻辑增长模型计算加倍时间?
EN

Stack Overflow用户
提问于 2021-01-13 23:11:20
回答 1查看 171关注 0票数 0
代码语言:javascript
复制
pop.ss <- nls(MRDRSLT ~ SSlogis(TIME, phi1, phi2, phi3), data = testing, na.action = na.omit)


theta <- coef(pop.ss)  #extracting coefficients
plot(MRDRSLT ~ TIME, data = testing, main = "Logistic Growth Model", 
     xlab = "Time", ylab = "MRD")  # Census data
curve(theta[1]/(1 + exp(-(x - theta[2])/theta[3])), add = T, col = "green")  # Fitted model


summary(pop.ss)

Formula: MRDRSLT ~ SSlogis(TIME, phi1, phi2, phi3)

Parameters:
      Estimate Std. Error t value Pr(>|t|)   
phi1 9.618e-05  6.935e-06  13.869  0.00516 **
phi2 2.480e+02  1.512e+01  16.403  0.00370 **
phi3 2.896e+01  2.392e+01   1.211  0.34960   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.197e-05 on 2 degrees of freedom

Number of iterations to convergence: 1 
Achieved convergence tolerance: 1.687e-06

我希望能够计算出我感兴趣的变量的加倍时间。如何从系数中提取。https://rdrr.io/r/stats/SSlogis.html

代码语言:javascript
复制
Asym/(1+exp((xmid-input)/scal))

在指数增长模型中,它很容易计算,因为它是1/速率。

代码语言:javascript
复制
t_doubling <- (1 / mu) * log10(2)
EN

回答 1

Stack Overflow用户

发布于 2021-01-13 23:27:03

这可能对CrossValidated更好。如果起始值非常小,则倍增时间的公式与指数曲线的公式相同(您的公式是错误的:倍增时间是2/速率的自然对数(log(2)/mu,不是log10(2)/mu):

代码语言:javascript
复制
x0*exp(mu*T_dbl) = 2*x0
exp(mu*T_dbl) = 2
mu*T_dbl = log(2)
T_dbl = log(2)/mu

在上面给出的参数化中(使用比例参数而不是速率参数),这将是log(2)*scal (但再次注意,它仅适用于(近似)从低密度开始的逻辑曲线,并且不会投影超过约Asym*0.3的水平,超过该水平,逻辑曲线看起来越来越线性,而不是指数)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65704667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档