As we have mentioned, the nonlinear least squares problem is sufficiently common and important that special tools exist for its solution. Let us look at the tools R provide either in the base system or otherwise for its solution.

`nls()`

from package `stats`

In the commonly distributed R system, the ** stats** package includes

`nls()`

. This function is intended to solve nonlinear least squares problems, and it has a large repertoire of features for such problems. A particular strength is the way in which `nls()`

is called to compute nonlinear least squares solutions. We can specify our nonlinear least squares problem as a mathematical expression, and `nls()`

does all the work of translating this into the appropriate internal computational structures for solving the nonlinear least squares problem. In my opinion, `nls()`

points the way to how nonlinear least squares and other nonlinear parameter estimation should be implemented and is a milestone in the software developments in this field. Thanks to Doug Bates and his collaborators for this.`nls()`

does, unfortunately, have a number of shortcomings, which are discussed in the following text. We also show some alternatives that can be used to overcome the deficiencies.

Let us consider a simple example where `nls()`

works using the weight loss of an obese patient over time (Venables and Ripley, 1994, p. 225) (Figure 6.1). The data is in the R package ** MASS** that is in the base distribution ...

Start Free Trial

No credit card required