nls {nls} | R Documentation

## Nonlinear Least Squares

### Description

Determine the nonlinear least squares estimates of the parameters.

### Usage

    nls(formula, data, start, control=nls.control(),
        algorithm="default", trace=F, subset, na.action)

### Arguments

`formula` | a nonlinear model formula including variables and parameters
`data` | an optional data frame in which to evaluate the variables in `formula`
`start` | a named list or named numeric vector of starting estimates
`control` | an optional list of control settings. See `nlsControl` for the names of the settable control values and their effect.
`algorithm` | character string specifying the algorithm to use. The default algorithm is a Gauss-Newton algorithm. The other alternative is "plinear", the Golub-Pereyra algorithm for partially linear least-squares models.
`subset` | an optional vector specifying a subset of observations to be used in the fitting process.
`na.action` | a function which indicates what should happen when the data contain `NA`s.

### Details

An `nls` object is a type of fitted model object. It has methods for the generic functions `coef`, `formula`, `resid`, `print`, `summary`, and `fitted`.

### Value

A list of

`m` | an `nlsModel` object incorporating the model
`data` | the expression that was passed to `nls` as the data argument. The actual data values are present in the environment of the `m` component.

### Author(s)

Douglas M. Bates and Saikat DebRoy

### References

Bates, D.M. and Watts, D.G. (1988), Nonlinear Regression Analysis and Its Applications, Wiley

### See Also

`nlsModel`

### Examples

    library( nls )
    data( DNase )
    DNase1 <- DNase[ DNase$Run == 1, ]
    ## using a selfStart model
    fm1DNase1 <- nls( density ~ SSlogis( log(conc), Asym, xmid, scal ), DNase1 )
    summary( fm1DNase1 )
    ## using conditional linearity
    fm2DNase1 <- nls( density ~ 1/(1 + exp(( xmid - log(conc) )/scal ) ),
                      data = DNase1,
                      start = list( xmid = 0, scal = 1 ),
                      alg = "plinear", trace = TRUE )
    summary( fm2DNase1 )
    ## without conditional linearity
    fm3DNase1 <- nls( density ~ Asym/(1 + exp(( xmid - log(conc) )/scal ) ),
                      data = DNase1,
                      start = list( Asym = 3, xmid = 0, scal = 1 ),
                      trace = TRUE )
    summary( fm3DNase1 )

[Package Contents]