loessFit {limma} | R Documentation |
A fast version of locally weighted linear 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.
|
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 purpose is to give a unified and streamlined 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
with degree=1
.
See the help pages for those functions for references and credits.
Note that 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 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
.
This is an attempt to put the delta
and cell
arguments on comparable scales.
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 |
residuals |
numeric vector of same length as |
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)