* Примечание - я прочитал несколько постов о том, как найти начальные значения для NLS - однако я не нашел ни одного с уравнением этой формы (т.е. 4 параметра, показатель степени возведен в степень)
Я изо всех сил пытаюсь найти подходящие начальные значения для уравнения Чепмена-Ричардса, которое обычно используется в лесном хозяйстве для моделирования роста деревьев.
y(t) = α * (1 - β * exp(-k * t)^{1/(1-m)})
Обычно я пытаюсь найти начальные значения путем построения линии с наборомпараметров, а затем настраивая их так, чтобы они более точно подходили к данным (Рисунок 1).После этого я бы использовал параметры в функции:
initial.test <- chapmanRichards(seq(0:15),42,0.95,0.28, 0.67)
plot(age,topHeight,type="p",xlab="year since planting",ylab="Dom height (m)", xlim = c(0,20), ylim = c(0, 50))
lines(seq(0:15),initial.test,col="red")
nls(topHeight ~ chapmanRichards(age,a,b,k,m),start=list(a=42,b=0.95,k=0.28,m=0.67))
В этом случае программа может соответствовать кривойс предоставленными начальными значениями.Проблема, однако, заключается в том, что когда данные немного зашумлены, и после 2 часов работы с начальными значениями теста я все еще не могу найти достаточно хороших начальных значений (на рисунке 2 показаны несколько попыток для другого набора данных.
Кто-нибудь может посоветовать, как можно найти подходящие начальные значения? Я думал о создании матрицы, которая в основном запускает последовательность для каждого изпараметры и цикл nls с этими начальными значениями, но не уверен, как будет выглядеть код. Любой другой совет будет с благодарностью!
PS - это будет что-то более подходящее для Excel - решатель?