loessFit {limma} | R Documentation

## Fast Simple Loess

### Description

A fast version of locally weighted regression when there is only one x-variable and only the fitted values and residuals are required.

### Usage

    loessFit(y, x, weights=NULL, span=0.3, bin=0.01/(2-is.null(weights)), iterations=4)

### Arguments

`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

### Details

This function is a low-level equivalent to `lowess` in the base library if `weights` is null and to `loess` in the modreg package otherwise. It is used by `normalizeWithinArrays`. The parameters `span`, `cell` and `iterations` have the same meaning as in `loess`. `span` is equivalent to the argument `f` to `lowess` and `iterations` is equivalent to `iter+1`. Unlike `lowess` this function returns values in original rather than sorted order.

The parameter `bin` is equivalent to `delta=bin*diff(range(x))` in a call to `lowess` when `weights=NULL` or to `cell=bin/span` in a call to `loess` when `weights` are given.

The treatment of missing values is analogous to `na.exclude`.

### Value

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

### Author(s)

Gordon Smyth

### See Also

An overview of LIMMA functions for normalization is given in 4.Normalization.

See also `lowess` in the base library and `loess` in the modreg package.

### Examples

    y <- rnorm(1000)
    x <- rnorm(1000)
    w <- rep(1,1000)
    # The following are equivalent apart from execution time
    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)))
    # Similar but with sorted x-values
    system.time(fit <- lowess(x,y,f=0.3)$y)

[Package Contents]