I'm working with an nls model using this formula (b1 * ((b2 * x)^b4)) / (1 + ((b2 * x)^b4))^(b3 / b4)
I use nls2 package with a random algorithm to find the initial values. This my code for the function of formula and curve:
eqn <- function(x){(b1 * ((b2 * x)^b4)) / (1 + ((b2 * x)^b4))^(b3 / b4)}
curve(eqn, data$x, data$y, col = "green", n = 6)
I don't know, if I use n = "" properly. But, I use n = 6 as the length of the equation because my data have 6 values on x and y variables.
However, when I try to make a curve for the model, it ended up on an error: object 'b1' not found.
How can I avoid this error? I avoided this error by setting up an estimated values of the variables I get using nls2 outside the structure of nls2.
For example:
b1 = 1
b2 = 5
b3 = 0.7
b4 = 9.5
**On the other hand, how to set up the values of the variables inside the curve()
for the equation without getting an error: object 'b1' not found.
, should I use start = list()
?
curve(eqn, data$x, data$y, col = "green", n = 6, start = list (b1 = 1, b2 = 5, b3 = 0.7, b = 9.5))
I found various examples about making a curve for a polynomial equation, but those examples already have defined values for the variables of the equation. Is there a way to set up the variables using the estimated values calculated from the nls2?