lowess {stats} R Documentation

## Scatter Plot Smoothing

### Description

This function performs the computations for the LOWESS smoother which uses locally-weighted polynomial regression (see the references).

### Usage

```lowess(x, y = NULL, f = 2/3, iter = 3,
delta = 0.01 * diff(range(xy\$x[o])))
```

### Arguments

 `x, y` vectors giving the coordinates of the points in the scatter plot. Alternatively a single plotting structure can be specified. `f` the smoother span. This gives the proportion of points in the plot which influence the smooth at each value. Larger values give more smoothness. `iter` the number of ‘robustifying’ iterations which should be performed. Using smaller values of `iter` will make `lowess` run faster. `delta` See Details. Defaults to 1/100th of the range of `x`.

### Details

`lowess` is defined by a complex algorithm, the Ratfor original of which (by W. S. Cleveland) can be found in the R sources as file ‘src/appl/lowess.doc’. Normally a local linear polynomial fit is used, but under some circumstances (see the file) a local constant fit can be used. ‘Local’ is defined by the distance to the `floor(f*n)`th nearest neighbour, and tricubic weighting is used for `x` which fall within the neighbourhood.

The initial fit is done using weighted least squares. If `iter > 0`, further weighted fits are done using the product of the weights from the proximity of the `x` values and case weights derived from the residuals at the previous iteration. Specifically, the case weight is Tukey's biweight, with cutoff 6 times the MAD of the residuals. (The current R implementation differs from the original in stopping iteration if the MAD is effectively zero since the algorithm is highly unstable in that case.)

`delta` is used to speed up computation: instead of computing the local polynomial fit at each data point it is not computed for points within `delta` of the last computed point, and linear interpolation is used to fill in the fitted values for the skipped points.

### Value

`lowess` returns a list containing components `x` and `y` which give the coordinates of the smooth. The smooth can be added to a plot of the original points with the function `lines`: see the examples.

### References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

Cleveland, W. S. (1979) Robust locally weighted regression and smoothing scatterplots. J. Amer. Statist. Assoc. 74, 829–836.

Cleveland, W. S. (1981) LOWESS: A program for smoothing scatterplots by robust locally weighted regression. The American Statistician, 35, 54.

`loess`, a newer formula based version of `lowess` (with different defaults!).
```plot(cars, main = "lowess(cars)")