robfilter (version 3.0)

robreg.filter: Robust Regression Filters for Univariate Time Series

Description

Procedures for robust (online) extraction of low frequency components (the signal) from a univariate time series by applying robust regression techniques to moving time windows.

Usage

robreg.filter(y, width, method = "all", h = floor(width/2)+1,   
                 minNonNAs = 5, online = FALSE, extrapolate = TRUE)

Arguments

Value

robreg.filter returns an object of class robreg.filter. An object of class robreg.filter is a list containing the following components:levela data frame containing the signal level extracted by the filter(s) specified in method.slopea data frame containing the corresponding slope within each time window.In addition, the original input time series is returned as list member y, and the settings used for the analysis are returned as the list members width, method, h, minNonNAs, online and extrapolate. Application of the function plot to an object of class robreg.filter returns a plot showing the original time series with the filtered output.

Details

robreg.filter is suitable for extracting low frequency components (the signal) from a time series which may be contaminated with outliers and can contain level shifts. For this, robust regression methods are applied to a moving window, and the signal level is estimated by the fitted value either at the end of each time window for online signal extraction without time delay (online=TRUE) or in the centre of each time window (online=FALSE).

References

Davies, P.L., Fried, R., Gather, U. (2004) Robust Signal Extraction for On-Line Monitoring Data, Journal of Statistical Planning and Inference 122, 65-78. (earlier version: http://www.sfb475.uni-dortmund.de/berichte/tr02-02.ps) Gather, U., Schettlinger, K., Fried, R. (2006) Online Signal Extraction by Robust Linear Regression, Computational Statistics 21(1), 33-51. (earlier version: http://www.sfb475.uni-dortmund.de/berichte/tr53-04.ps) Schettlinger, K., Fried, R., Gather, U. (2006) Robust Filters for Intensive Care Monitoring: Beyond the Running Median, Biomedizinische Technik 51(2), 49-56.

See Also

wrm.filter, robust.filter, dw.filter, hybrid.filter.

Examples

Run this code
# Generate random time series:
y <- cumsum(runif(500)) - .5*(1:500)
# Add jumps:
y[200:500] <- y[200:500] + 5
y[400:500] <- y[400:500] - 7
# Add noise:
n <- sample(1:500, 30)
y[n] <- y[n] + rnorm(30)

# Filtering with all methods:
y.rr <- robreg.filter(y, width=31, method=c("RM", "LMS", "LTS", "DR", "LQD"))
# Plot:
plot(y.rr)

# Delayed filtering with RM and LMS filter:
y2.rr <- robreg.filter(y,width=31,method=c("RM","LMS"))
plot(y2.rr)

# Online filtering with RM filter:
y3.rr <- rm.filter(y,width=41,online=TRUE)
plot(y3.rr)

Run the code above in your browser using DataLab