Я работаю с моделью nls, используя эту формулу (b1 * ((b2 * x)^b4)) / (1 + ((b2 * x)^b4))^(b3 / b4)
Я использую пакет nls2 со случайным алгоритмом для поиска начальных значений. Это мой код для функции формулы и кривой:
eqn <- function(x){(b1 * ((b2 * x)^b4)) / (1 + ((b2 * x)^b4))^(b3 / b4)}
curve(eqn, data$x, data$y, col = "green", n = 6)
Я не знаю, правильно ли я использую n = "". Но я использую n = 6 в качестве длины уравнения, потому что мои данные имеют 6 значений переменных x и y.
Однако, когда я пытаюсь сделать кривую для модели, это заканчивается ошибкой: object 'b1' not found.
Как избежать этой ошибки? Я избежал этой ошибки, настроив оценочные значения переменных, которые я получаю, используя nls2 вне структуры nls2.
Например:
b1 = 1
b2 = 5
b3 = 0.7
b4 = 9.5
**С другой стороны, как настроить значения переменных внутри curve()
для уравнения, не получая ошибки: object 'b1' not found.
, должен ли я использовать start = list()
?
curve(eqn, data$x, data$y, col = "green", n = 6, start = list (b1 = 1, b2 = 5, b3 = 0.7, b = 9.5))
Я нашел различные примеры создания кривой для полиномиального уравнения, но в этих примерах уже определены значения переменных уравнения. Есть ли способ настроить переменные, используя оценочные значения, рассчитанные на основе nls2?
eqn <- function (x, b1, b2, b3, b4){...}
. Правильный способ определения вашей функции зависит от того, какnls
предназначен для работы. - person mikeck   schedule 02.01.2020