我正在尝试在 R 中生成使用该nls()
函数的 von Bertalanffy 增长模型,但出现“奇异梯度”错误
数据集“FladenA”是指我的样本来自的位置,并包含“最大高度”和“年龄”数据,这是模型所需的两个变量
这是我用来帮助生成模型的 pdf http://derekogle.com/fishR/examples/oldFishRVignettes/VonBertalanffy.pdf
#load in the appropriate packages
library(FSA)
library(FSAdata)
library(nlstools)
#generate reasonable starting values using vbStarts
svTypical <- vbStarts(Max_Height~Age,data=FladenA)
# unlist used only to save space when viewing the results
unlist(svTypical)
# Linf K t0
#63.1980478 0.1035328 4.5816629
# creating object that contains a list of the identified starting values
svTypical <- list(Linf=63.1980478,K=0.1035328,t0= 4.5816629)
nls()
函数需要增长模型表达式作为第一个参数,用适当的变量名称替换通用长度和年龄变量,从中绘制参数中的变量的数据框data=
,以及 start= 参数中包含起始参数值的列表. 与往常一样,应将模型拟合分配给对象以进行进一步分析。
#Name and input the growth model
vbTypical <- Max_Height~Linf*(1-exp(-K*(Age-t0)))
# use the nls function with the vbTypical as the growth model expression, dataset for which to draw the variables as Fladen A, and the list containing the starting parameter values as svTypical
fitTypical <- nls(vbTypical,data=FladenA,start=svTypical)
nls 中的错误(vbTypical,数据 = FladenA,开始 = svTypicala):
奇异梯度
这个“奇异梯度”是问题所在,有谁知道如何解释这个问题以及我如何解决它?