colf_nls {colf} | R Documentation |
Non linear Least Squares Optimization on a Linear Objective Function
Description
Non linear least squares optimization using the port algorithm on a linear objective function.
Usage
colf_nls(formula, data, start = NULL, trace = FALSE, control = NULL,
na.action = c("na.omit", "na.fail", "na.exclude"), lower = -Inf,
upper = Inf, ...)
Arguments
formula |
The formula. This has the same syntax and supports the same features as the
formula in |
data |
A data frame containing the data of the variables in the formula. |
start |
An atomic vector of same length as the number of parameters. If not provided a cheap guess will be made. If categorical variables are included these need to be takent into consideration as number of categories minus one. See examples and details. |
trace |
Logical. Defaults to FALSE. Set to TRUE if you want the intermediate progress to be reported |
control |
an optional list of control settings. See nls.control for the names of the settable control values and their effect. |
na.action |
A function which indicates what should happen if NAs are present in the data set. Defaults to options('na.action'). na.fail, or na.exclude can be used. |
lower |
Lower bounds of the parameters (atomic vector). If a single number, this will be applied to all parameters. Defaults to -Inf (unconstrained). |
upper |
Upper bounds of the parameters (atomic vector). If a single number, this will be applied to all parameters. Defaults to Inf (unconstrained). |
... |
Other arguments passed on to optimiser |
Details
colf_nls
uses nls, in an attempt to find the minimum of the residual sum of squares.
The algorithm is applied on a linear objective function.
The function provides an easy way to apply the optimizer on a linear objective function in a
similar way to lm
.
start, lower and upper, if provided, can be either an atomic vector which has the same length as
the number of parameters or a single number which will be replicated to match the length of the
parameters. If categorical variables exist in the function these will be dummified. Out of one
categorical variable, n - 1 will be created where n is the total number of categories in the
variable. This needs to be taken into account when providing an atomic vector for start, lower or
upper. Also, as with lm
an intercept will be added which also needs to be taken into
account.
Value
Same as nls
See Also
Examples
#no constraints
colf_nls(mpg ~ cyl + disp, mtcars)
#no intercept
colf_nls(mpg ~ 0 + cyl + disp, mtcars)
#including categorical variables. These will be dummified.
colf_nls(Sepal.Length ~ Sepal.Width + Species, iris)
#lower boundary will be replicated for all parameters
colf_nls(Sepal.Length ~ Sepal.Width + Species, iris, lower = 0.5)
#species is categorical and contains 3 categories, thus we need to specify 4 lower bounds:
#the first one for the intercept.
#the second one for Sepal.Width
#the two next for the dummy variables constructed from Species.
colf_nls(Sepal.Length ~ Sepal.Width + Species, iris, lower = rep(0.5, 4))