loessFit                package:limma                R Documentation

_F_a_s_t _S_i_m_p_l_e _L_o_e_s_s

_D_e_s_c_r_i_p_t_i_o_n:

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

_U_s_a_g_e:

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

_A_r_g_u_m_e_n_t_s:

       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

_D_e_t_a_i_l_s:

     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.

_V_a_l_u_e:

     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

_A_u_t_h_o_r(_s):

     Gordon Smyth, based on code from 'lowess' and 'loess' by BD Ripley

_S_e_e _A_l_s_o:

     See 'lowess' and 'loess' in the stats package.

     See 05.Normalization for an outline of the limma package
     normalization functions.

_E_x_a_m_p_l_e_s:

     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)

