【发布时间】:2023-03-31 06:40:01
【问题描述】:
我正在研究变量 y 的模型,我打算在其中使用时间作为解释变量。我选择了 Gompertz 和逻辑曲线作为候选者,但是当我尝试估计系数时(同时使用 nls 和 nls2),我最终会得到不同的错误(奇异性或步长因子降低到“minFactor”以下)。我真的很感激任何帮助。这是我的代码和 info 对象的 deput 版本。
我根据http://www.metla.fi/silvafennica/full/sf33/sf334327.pdf中的条件选择了初始值
library(nls2)
> dput(info)
structure(list(y = c(0.308, 0.279, 0.156, 0.214, 0.224, 0.222,
0.19, 0.139, 0.111, 0.17, 0.155, 0.198, 0.811, 0.688, 0.543,
0.536, 0.587, 0.765, 0.667, 0.811, 0.587, 0.617, 0.586, 0.633,
2.231, 2.202, 1.396, 1.442, 1.704, 2.59, 2.304, 3.026, 2.7, 3.275,
3.349, 3.936, 9.212, 8.773, 6.431, 6.983, 7.169, 9.756, 10.951,
13.938, 14.378, 18.406, 24.079, 28.462, 51.461, 46.555, 39.116,
43.982, 41.722), t = 1:53), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -53L))
summary(gomp_nls <- nls2(y ~ alpha*exp(-beta*exp(-gamma*t)),
data = info,
start = list(alpha = 40, beta = 4.9, gamma = 0.02),
algorithm = "default")
)
summary(logist_nls <- nls2(y ~ alpha/(1+beta*exp(-gamma*t)),
data = info,
start = list(alpha = 40, beta = 128, gamma = 0.02),
algorithm = "default"))
)
感谢您的帮助
【问题讨论】:
-
这些是 sigmoid 增长的模型。您的数据没有显示为 sigmoid 的迹象。请尝试拟合一个简单的指数增长模型。
-
嗨,在这个数据集中,y 是移民到一个国家,所以它不可能是指数的,它必须达到一个饱和点
-
统计数据并不神奇。如果您的数据没有显示饱和点的迹象,则模型将无法找到它。 (这个讨论属于 stats.stackexchange.com 网站,而不是编程网站。)
标签: r nls non-linear-regression convergence