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 function is a low-level equivalent to lowess
in the stats package if weights
is null and to loess
otherwise.
It is intended to give a streamlined common interface to the two functions for use in normalizeWithinArrays
.
Note that, while lowess
has fewer features than loess
, it is faster, uses less memory and uses a more accurate interpolation scheme than loess
, so it is desirable to use lowess
whenever the extra features of loess
are not required.
There are a couple of key differences between loessFit
and loess
when weights
is non-NULL.
One difference is that loessFit
returns a linear regression fit if there are insufficient observations to estimate the loess curve, whereas loess
will return an error.
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
.
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
An overview of LIMMA functions for normalization is given in 4.Normalization.
See also lowess
and loess
in the stats package.
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)