将带参数的非线性模型拟合到 R 中的数据

问题描述 投票:0回答:0

我有以下等式:

keq = (q^(1+b))/((cp^n) * cPEG)

其中 b 定义为:

b = b0 exp(b1 * cPEG+b2 * cp0)

且cp依赖于q,可表示为:

cp = cp0 - q

我有 cPEG 和 q 的数据,我想通过找到 keq、n、b0、b1 和 b2 的最佳参数值来将此方程式拟合到数据中。 cp0 也是给定的常数。

R 中执行此操作的最佳方法是什么?

最初我尝试隔离 q 并使用 nls 对参数进行初始猜测,但这没有成功,因为我意识到我无法隔离 q,因为 cp 依赖于 q。然而,我能够使用 SSlogis 通过数据点或使用 plinear-random 算法的显式方程来拟合逻辑函数来可视化趋势。

st1 <- data.frame(L = c(0.01,2), k = c(1,20), coa0 = c(0.01,1.5))
fit1 <- nls2(q1 ~ L/(1 + exp(-k * (coa1 - coa0))), 
             start = st1,
             control = nls.control(maxiter = 200),
             algorithm="plinear-random")
fit2 <- nls(q2 ~ SSlogis(coa2, Asym, xmid, scal), data = df2)
r non-linear-regression
© www.soinside.com 2019 - 2024. All rights reserved.