R: Scatter Plot Smoothing

lowess {gplots} | R Documentation

## Scatter Plot Smoothing

### Description

The `lowess` function performs the computations for the LOWESS smoother (see the reference below). `lowess` returns a an object containing components `x` and `y` which give the coordinates of the smooth. The smooth can then be added to a plot of the original points with the function `lines`.

Alternatively, `plot` can be called directly on the object returned from `lowess` and the 'lowess' method for `plot` will generate a scatterplot of the original data with a `lowess` line superimposed.

Finally, the `plotLowess` function both calculates the `lowess` smooth and plots the original data with a `lowess` smooth.

### Usage

    lowess(x, ...)

    ## Default S3 method:
    lowess(x, y=NULL, f=2/3, iter=3L, delta=0.01 *
           diff(range(x)), ...)

    ## S3 method for class 'formula'
    lowess(formula,data=parent.frame(), ..., subset, f=2/3,
           iter=3L, delta=.01*diff(range(mf[-response])))

    ## S3 method for class 'lowess'
    plot(x, y, ..., col.lowess="red", lty.lowess=2)

    plotLowess(formula, data=parent.frame(), ..., subset=parent.frame(),
               col.lowess="red", lty.lowess=2  )

### Arguments

`formula` | formula providing a single dependent variable (y) and an single independent variable (x) to use as coordinates in the scatter plot.
`data` | a data.frame (or list) from which the variables in ‘formula’ should be taken.
`subset` | an optional vector specifying a subset of observations to be used in the fitting process.
`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` | values of `x` which lie within `delta` of each other replaced by a single value in the output from `lowess`.
`...` | parameters for methods.
`col.lowess, lty.lowess` | color and line type for plotted line

### References

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.

### See Also

`loess` (in package `modreg`), a newer formula based version of `lowess` (with different defaults!).

### Examples

    data(cars)

    #
    # x,y method
    #
    plot(cars$speed, cars$dist, main="lowess(cars)")
    lines(lowess(cars$speed, cars$dist), col=2)
    lines(lowess(cars$speed, cars$dist, f=.2), col=3)
    legend(5, 120, c(paste("f=", c("2/3", ".2"))), lty=1, col=2:3)

    #
    # formula method: plot, then calculate the lowess smoother,
    #                 then add smooth to the plot
    #
    plot(dist ~ speed, data=cars, main="lowess(cars)")
    lines(lowess(dist ~ speed, data=cars), col=2, lty=2)
    lines(lowess(dist ~ speed, data=cars, f=.2), col=3) # smaller bandwith
    legend(5, 120, c(paste("f=", c("2/3", ".2"))), lty=1, col=2:3)

    #
    # formula method: calculate lowess() smoother, then call plot()
    #                  on the lowess object
    #
    lw <- lowess(dist ~ speed, data=cars)
    plot(lw, main="lowess(cars)"  )

    #
    # formula method: calculate and plot in a single command
    #
    plotLowess(dist ~ speed, data=cars, main="lowess(cars)")

[Package gplots version 3.0.1 Index]