gpt4 book ai didi

r - 使用 R 拟合 Sigmoidal 曲线

转载 作者:行者123 更新时间:2023-12-04 11:36:06 29 4
gpt4 key购买 nike

我读过一篇文章( Sigmoidal Curve Fit in R )。它被标记为重复,但我看不到任何与帖子相关的内容。为帖子给出的答案是不够的。

我读了 webpage

与其他人类似,他使用这种格式来拟合这条线:

fitmodel <- nls(y~a/(1 + exp(-b * (x-c))), start=list(a=1,b=.5,c=25))

问题是,在大多数情况下都给出了 a、b、c,我不知道应该将哪一组 a、b、c 用于我的数据集。有人能给我一些关于如何获取参数的建议吗?

这是我的一组数字:
x <- c(3.9637878,3.486667,3.0095444,2.5324231,2.0553019,1.5781806,1.1010594,0.6242821)
y <- c(6491.314,6190.092,2664.021,2686.414,724.707,791.243,1809.586,541.243)

最佳答案

幸运的是,R 为逻辑模型提供了一个自启动模型。它使用了轻微的重新参数化,但实际上与您的模型相同:Asym/(1+exp((xmid-input)/scal))
自启动模型可以为您估计好的起始值,因此您不必指定它们。

plot(y ~ x)
fit <- nls(y ~ SSlogis(x, Asym, xmid, scal), data = data.frame(x, y))

summary(fit)
#Formula: y ~ SSlogis(x, Asym, xmid, scal)
#
#Parameters:
# Estimate Std. Error t value Pr(>|t|)
#Asym 1.473e+04 2.309e+04 0.638 0.551
#xmid 4.094e+00 2.739e+00 1.495 0.195
#scal 9.487e-01 5.851e-01 1.622 0.166
#
#Residual standard error: 941.9 on 5 degrees of freedom
#
#Number of iterations to convergence: 0
#Achieved convergence tolerance: 4.928e-06

lines(seq(0.5, 4, length.out = 100),
predict(fit, newdata = data.frame(x = seq(0.5, 4, length.out = 100))))

resulting plot

当然,您的数据并不真正支持该模型。估计的中点恰好在您的数据范围的正确限制处,因此参数估计(尤其是渐近线)非常不确定。

关于r - 使用 R 拟合 Sigmoidal 曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33033176/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com