Есть ли способ ограничить диапазон значений, который может принимать NLS-коэффициент в R? Я знаю форму кривой, которая должна существовать для моих данных; однако NLS не производит такую кривую, создавая коэффициент мощности < 1.Как разместить ограничения на коэффициенты nls?
В сущности, я пытаюсь создать высоту стебля для отношения надземной биомассы для набора данных из дерева дерева (саженцы) , Высота деревьев ограничена холодовой погодой на участке, и поэтому они приближаются к пределу высоты ... но продолжают расти в обхвате и, следовательно, биомассе по мере старения.
Проблема в том, что у меня есть только данные для определенного диапазона высоты деревьев, и отсутствуют значения для стеблей < 1,3 метра в высоту. Код, который у меня есть до сих пор:
#Plot the raw data
plot(AC$Height.m, AC$ag.biomass, xlim=c(0,2.5), ylim=c(0,40))
#Generate a NLS fit and plot curve on the raw data to show misfit
bg.nls = nls(ag.biomass ~ B0*Height.m^B1, data=AC, start=list(B0=8,B1=2))
curve(coef(bg.nls)[1]*x^coef(bg.nls)[2], col="red", add=TRUE)
#Provide example of appropriate growth curve given biological understanding
curve(6*x^1.7, col="blue", add=TRUE)
который производит следующий участок. Красная линия показывает несоответствие NLS (в первую очередь из-за того, что B1 составляет < 1), а синяя линия является примером биологически подходящей подгонки.
Я понимаю, что есть много статистических проблем, связанных с этим средством генерирования модели Fit - однако я не связан с ними здесь. Вместо этого меня просто интересует техническая проблема ограничения значения B1 только значениями, превышающими 1. Есть ли способ сделать это?
Проверьте '' lower' и upper' аргументы для ограничения коэффициента помещается в 'nls'. – eipi10
Обратите внимание, однако, что аргументы 'upper' и' lower' могут использоваться только с алгоритмом порта, который согласно документации «выглядит незавершенным» и должен использоваться «с осторожностью, особенно там, где указаны границы». –