Ошибка «сингулярного градиента» при создании модели роста фон Берталанффи с использованием функции nls () - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь создать модель роста фон Берталанффи в R, которая использует функцию nls(), но получает ошибку «единственного градиента»

Набор данных «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() функция требует выражения модели роста в качестве первого аргумента, с соответствующими именами переменных, заменяемыми обобщенными переменными длины и возраста c, фрейм данных для которых Нарисуйте переменные в аргументе 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, data = FladenA, start = svTypicala):
единичный градиент

В этом «единственном градиенте» лежит проблема, кто-нибудь знает, как объяснить, что это за проблема и как я могу ее решить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...