r - nls 问题 : Missing value or an infinity produced when evaluating the model

标签 r nls

我是 R 新手,试图将植物光合光响应曲线(饱和、曲线)拟合到专家接受的特定模型。目标是获得 Am、Rd 和 LCP 的估计系数值。这是我不断收到的错误:

Error in numericDeriv(form[[3L]], names(ind), env) : 
  Missing value or an infinity produced when evaluating the model

我已经多次切换起始值,但仍然没有运气。帮助?提前谢谢你。下面的示例数据集。
photolrc= c(3.089753, 6.336478, 7.737142, 8.004812, 8.031599)
PARlrc= c(48.69624, 200.08539, 499.29840, 749.59222, 1250.09363)
curvelrc<-data.frame(PARlrc,photolrc)
curve.nlslrc = nls(photolrc ~ Am*(1-((1-(Rd/Am))^(1-(PARlrc/LCP)))),start=list(Am=(max(photolrc)-min(photolrc)),Rd=-min(photolrc),LCP= (max(photolrc)-1)))
coef(curve.nlslrc)

最佳答案

minpack.lm 来救援:

library(minpack.lm)
curve.nlslrc = nlsLM(photolrc ~ Am*(1-((1-(Rd/Am))^(1-(PARlrc/LCP)))),
                   start=list(Am=(max(photolrc)-min(photolrc)),
                              Rd=-min(photolrc),
                              LCP= (max(photolrc)-1)),
                   data = curvelrc)
coef(curve.nlslrc)
  #      Am         Rd        LCP 
  #8.011311   1.087484 -20.752957

plot(photolrc ~ PARlrc, data = curvelrc)
lines(0:1300, 
      predict(curve.nlslrc, 
              newdata = data.frame(PARlrc = 0:1300)))

resulting plot

如果您通过 start = list(Am = 8, Rd = 1, LCP = -20)nls你也得到了成功的契合。

考虑到这背后的科学,我不知道参数值是否是合理的估计。 LCP 可以为负数吗?

关于r - nls 问题 : Missing value or an infinity produced when evaluating the model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33265467/

相关文章:

r - 如何使用 kableextra 更改特定文本值的颜色

r - 如何在 50000 条记录数据集上更快地运行 mclust

r - attr(*, "internal.selfref")=<externalptr> 出现在 data.table Rstudio

r - 使用 nls 在 R 中拟合曲线

r - 跳过最后10行以读取csv文件(行数未知)

r - 有没有办法使用 R 导出学术文章中的表格?

r - nls - 收敛错误

r - 如何从 `nls`获取估计参数

R nls : fitting a curve to data

r - 为 nls() 手动定义 maxiter 时无法使用自启动模型?