r - 初始参数估计时的 nls 奇异梯度矩阵

标签 r nls

我试图将第一个零级动力学曲线拟合到一些数据,当我绘制数据并向模型添加一些初始参数时,我得到了非常好的视觉拟合,但是当我运行并且nls 我收到错误:

Error in nlsModel(formula, mf, start, wts) : singular gradient matrix at initial parameter estimates

我尝试过这些参数但没有成功,所以我根据模型模拟了一些数据,但仍然遇到相同的错误。任何可能出错的建议:

t <- 1:50
CrStart <- 850
CsStart <- 1100
KrStart <- 0.27
KsStart <- 0.0065
y3 <- runif(1,825,875)*(1 - exp(-runif(1,0.25,0.3)*t)) + runif(1,1050,1150)*runif(1,0.00625,0.00675)*t+runif(50,0,100)

plot(t,y3)

m <- nls (y3~Cr*(1 - exp(-Kr*t)) + Cs*Ks*t, start=list(Cr=CrStart,Cs=CsStart,Kr=KrStart,Ks=KsStart))

最佳答案

您的问题是参数CsKs混淆了;你的模型中有太多参数。有无数种适合该模型的 CsKs 组合。

解决方案是将 Cs*Ks 更改为 K 并求解 K。那么K = Cs*Ks

关于r - 初始参数估计时的 nls 奇异梯度矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41486498/

相关文章:

r - 如何删除 ggsurvplot 图例中的自动 "strata"-text?

r - 在 geom_smooth 中使用 `nlsfit` 添加指数线来绘制

R_using nlsLM() 有约束

R 脚本 - NLS 不工作

r - GDAX API 与 R : invalid signature

R 上的重复函数

r - 如果 x>0 使用 f(x) ,如果 x<0 使用 g(x) 并将所有 y 绘制在一个图中

r - 从文本文件导入单个向量作为 R 中的变量

sql - to_number Oracle SQL 中数字格式的动态长度

oracle - 考虑到在数据库服务器上定义的NLS_NUMERIC_CHARACTERS,如何使用正确的TO_NUMBER()Oracle函数?