loessFit {limma} | R Documentation |
A fast version of locally weighted regression when there is only one x-variable and only the fitted values and residuals are required.
loessFit(y, x, weights=NULL, span=0.3, bin=0.01/(2-is.null(weights)), iterations=4)
y |
numeric vector of response values. Missing values are allowed. |
x |
numeric vector of predictor values Missing values are allowed. |
weights |
numeric vector of non-negative weights. Missing values are allowed. |
span |
numeric parameter between 0 and 1 specifying proportion of data to be used in the local regression moving window. Larger numbers give smoother fits. |
bin |
numeric value between 0 and 1 giving the proportion of the data which can be grouped in a single bin when doing local regression fit.
bin=0 forces an exact local regression fit with no interpolation. |
iterations |
number of iterations of loess fit |
This is a wrapper function to the Fortran and C code in the stats package which underlies the lowess
and loess
functions.
Its is to give a streamlined common interface to lowess
and loess
for use in normalizeWithinArrays
.
When weights
is null, this function is in effect a call to lowess
in the stats package, with appropropriate choice of tuning parameters.
When weights
is non-null, it is in effect a call to loess
.
See the help pages for those functions for references and credits.
Note tha lowess
is faster, needs less memory and is able to use a more accurate interpolation scheme than loess
, so it is desirable to use lowess
whenever loess
is not needed to handle quantitative weights.
The arguments span
, cell
and iterations
here have the same meaning as in loess
.
span
is equivalent to the argument f
of lowess
and iterations
is equivalent to iter+1
.
The parameter bin
is intended to give a simple uniform interface to the delta
argument of lowess
and the cell
argument of loess
.
bin
translates to delta=bin*diff(range(x))
in a call to lowess
or to cell=bin/span
in a call to loess
.
Unlike lowess
, loessFit
returns values in original rather than sorted order.
Also unlike lowess
, loessFit
allows missing values, the treatment being analogous to na.exclude
.
Unlike loess
, loessFit
returns a linear regression fit if there are insufficient observations to estimate the loess curve.
A list with components
fitted |
numeric vector of same length as y giving the loess fit |
residuals |
numeric vector of same length as x giving residuals from the fit |
Gordon Smyth, based on code from lowess
and loess
by BD Ripley
See lowess
and loess
in the stats package.
See 05.Normalization for an outline of the limma package normalization functions.
y <- rnorm(1000) x <- rnorm(1000) w <- rep(1,1000) # The following are equivalent apart from execution time # and interpolation inaccuracies system.time(fit <- loessFit(y,x)$fitted) system.time(fit <- loessFit(y,x,w)$fitted) system.time(fit <- fitted(loess(y~x,weights=w,span=0.3,family="symmetric",iterations=4))) # The same but with sorted x-values system.time(fit <- lowess(x,y,f=0.3)$y)