首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么R和R的逻辑增长产出之间存在差异?

为什么R和R的逻辑增长产出之间存在差异?
EN

Stack Overflow用户
提问于 2020-03-26 23:53:32
回答 1查看 53关注 0票数 2
代码语言:javascript
复制
df <- data.frame(
  time = c(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17),
  var = c(12.69,16.35,20.29,25.08,30.81,38.75,45,49.16,55.15,62.852,68.63,76.64,82.47,85.68,89.14,91.86,95.28,98.17)
)

logisticmodel <- nls(var ~ SSlogis(time, phi1, phi2, phi3), data = df)
summary(logisticmodel)
coef(logisticmodel)
#predict(logisticmodel, data.frame(time = 18))

R给出的输出如下:

代码语言:javascript
复制
      phi1       phi2       phi3 
105.737368   7.432555   3.852865

但是the website给了我们:

我知道有些语言有不同的输出。这很正常,但我想知道你的想法是什么?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-27 00:46:43

问题是,不同的模型是适合的。

具有自启动功能SSlogisnls符合该模型(参见help('SSlogis'))

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

或者,使用您的符号,

代码语言:javascript
复制
phi1/(1 + exp((phi2 - input)/phi3))

笔和纸显示,以下转换在网页中给出结果。

代码语言:javascript
复制
fit <- nls(var ~ SSlogis(time, phi1, phi2, phi3), data = df)

kappa <- coef(fit)[1]
alpha <- exp(coef(fit)[2]/coef(fit)[3])
beta <- 1/coef(fit)[3]
c(kappa = unname(kappa), alpha = unname(alpha), beta = unname(beta))
#      kappa       alpha        beta 
#105.7373679   6.8832991   0.2595471 

因此,为了自动化这一点,编写一个简单的函数。

代码语言:javascript
复制
transf <- function(x){
  kappa <- coef(x)[1]
  alpha <- exp(coef(x)[2]/coef(x)[3])
  beta <- 1/coef(x)[3]
  c(kappa = unname(kappa), alpha = unname(alpha), beta = unname(beta))
}

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

https://stackoverflow.com/questions/60871155

复制
相关文章

相似问题

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