| % File src/library/stats/man/lowess.Rd |
| % Part of the R package, https://www.R-project.org |
| % Copyright 1995-2018 R Core Team |
| % Distributed under GPL 2 or later |
| |
| \name{lowess} |
| \title{Scatter Plot Smoothing} |
| \description{ |
| This function performs the computations for the |
| \emph{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(x))) |
| } |
| \alias{lowess} |
| \arguments{ |
| \item{x, y}{vectors giving the coordinates of the points in the scatter plot. |
| Alternatively a single plotting structure can be specified -- see |
| \code{\link{xy.coords}}.} |
| \item{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.} |
| \item{iter}{the number of \sQuote{robustifying} iterations which should be |
| performed. |
| Using smaller values of \code{iter} will make \code{lowess} run faster.} |
| \item{delta}{See \sQuote{Details}. Defaults to 1/100th of the range |
| of \code{x}.} |
| } |
| \details{ |
| \code{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 |
| \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. \sQuote{Local} is defined by the distance to the |
| \code{floor(f*n)}th nearest neighbour, and tricubic weighting is used |
| for \code{x} which fall within the neighbourhood. |
| |
| The initial fit is done using weighted least squares. If |
| \code{iter > 0}, further weighted fits are done using the product of |
| the weights from the proximity of the \code{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.) |
| |
| \code{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 \code{delta} of the last computed point, and linear |
| interpolation is used to fill in the fitted values for the skipped |
| points. |
| } |
| \value{ |
| \code{lowess} returns a list containing components |
| \code{x} and \code{y} which give the coordinates of the smooth. |
| The smooth can be added to a plot of the original |
| points with the function \code{lines}: see the examples. |
| } |
| \references{ |
| Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988). |
| \emph{The New S Language}. |
| Wadsworth & Brooks/Cole. |
| |
| Cleveland, W. S. (1979). |
| Robust locally weighted regression and smoothing scatterplots. |
| \emph{Journal of the American Statistical Association}, \bold{74}, |
| 829--836. |
| \doi{10.1080/01621459.1979.10481038}. |
| |
| Cleveland, W. S. (1981) |
| LOWESS: A program for smoothing scatterplots by robust locally |
| weighted regression. |
| \emph{The American Statistician}, \bold{35}, 54. |
| \doi{10.2307/2683591}. |
| } |
| \seealso{\code{\link{loess}}, a newer |
| formula based version of \code{lowess} (with different defaults!). |
| } |
| \examples{ |
| require(graphics) |
| |
| plot(cars, main = "lowess(cars)") |
| lines(lowess(cars), col = 2) |
| lines(lowess(cars, f = .2), col = 3) |
| legend(5, 120, c(paste("f = ", c("2/3", ".2"))), lty = 1, col = 2:3) |
| } |
| \keyword{smooth} |