R: Robust Fitting of Baselines

rfbaseline {IDPmisc} | R Documentation

## Robust Fitting of Baselines

### Description

Robust fitting of local regression models for estimating a baseline or a background signal

### Usage

    rfbaseline(x, y, span = 2/3, NoXP = NULL,
               maxit = c(2, 2), b = 3.5, weight = NULL,
               Scale = function(r) median(abs(r))/0.6745,
               delta = NULL, SORT = TRUE, DOT = FALSE, init = NULL)

### Arguments

`x, y` | Abscissa and ordinate of the points on the scatterplot.
`span` | Specifies the amount of smoothing; span is the fraction of points used to compute each fitted value; as span increases the output becomes smoother.
`NoXP` | Another way of specifying the amount of smoothing; NoXP is the Number of X Points used to compute each fitted value; it must be larger than 3.
`maxit` | The number of iterations in the robust fit; if maxit=c(0,0), the nonrobust fit is returned; the first entry specifies the number of iterations using an asymmetric biweight function, whereas the second entry specifies the number of iterations using the usual (symmetric) biweight function.
`b` | Tuning constant in the biweight function.
`weight` | Optional weights to be given to individual observations.
`Scale` | function specifying how to calculate the scale of the residuals.
`delta` | Nonnegative parameter which may be used to save computation. By default, if `length(x) <= 100`, delta is set equal to 0; if `length(x) > 100` set to 1/100th of the range of `x`.
`SORT` | Boolean variable indicating whether x data must be sorted. Change it only when the x are sorted and you want to safe computer time.
`DOT` | If TRUE disregard outliers totally; that is, observations with weight 0 are disregarded even when the neighbourhood is determined.
`init` | Values of an initial fit.

### Value

List containing components

`x` | Sorted input vector x with duplicate points removed
`y` | Corresponding input vector y
`fit` | Fitted values at x
`rw` | Robust weights of (x,y)-Points used in last iteration of fit
`scale` | Scale used in last iteration of fit

### Author(s)

Andreas Ruckstuhl

### References

Ruckstuhl, Andreas F., Matthew P. Jacobson, Robert W. Field and James A. Dodd (2001); Baseline Subtraction Using Robust Local Regression Estimation; Journal of Quantitative Spectroscopy and Radiative Transfer 68: 179 – 193

Ruckstuhl, Andreas F., et al.; Estimation of background concentrations of atmospheric trace gases using robust local regression; to be published

### See Also

See Also as `loess` and `lowess`

### Examples

    data(MS)
    MS1 <- log10(MS[MS$mz>12000&MS$mz<1e5,])

    MS1.rfb2 <- rfbaseline(x=MS1$mz, y=MS1$I, NoXP=2200, maxit=c(5,0))
    plot(x=MS1$mz, y=MS1$I, type="l",
         xlab="log(mass/charge)", ylab="log(intensity)")
    lines(MS1.rfb2$x, MS1.rfb2$fit, col="orange", lwd=3)

    MS1.rfb3 <- rfbaseline(x=MS1$mz, y=MS1$I, NoXP=1100, maxit=c(5,0),
                           DOT=TRUE, Scale=function(x) mad(x, center=0))
    plot(x=MS1$mz, y=MS1$I, type="l",
         xlab="log(mass/charge)", ylab="log(intensity)")
    lines(MS1.rfb3$x, MS1.rfb3$fit, col="orange", lwd=3)

    ## 'delta=0' needs much more computer time
    ## Not run:
    MS1.rfb4 <- rfbaseline(x=MS1$mz, y=MS1$I, NoXP=2200,
                           delta=0, maxit=c(5,0))
    plot(x=MS1$mz, y=MS1$I,ty="l",
         xlab="log(mass/charge)", ylab="log(intensity)")
    lines(MS1.rfb4$x, MS1.rfb4$fit, col="orange", lwd=3)

    ## End(Not run)

[Package IDPmisc version 1.1.20 Index]