lqd.filter | R Documentation |
This function extracts signals from time series by means of Least Quartile Difference regression in a moving time window.
lqd.filter(y, width, online = FALSE, extrapolate = TRUE)
y |
a numeric vector or (univariate) time series object. |
width |
a positive integer defining the window width used for fitting. |
online |
a logical indicating whether the current level estimate is
evaluated at the most recent time within each time window
( |
extrapolate |
a logical indicating whether the level
estimations should be extrapolated to the edges of the time series. |
lqd.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 Least Quartile Difference regression is 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
).
lqd.filter
returns an object of class robreg.filter
.
An object of class robreg.filter
is a list containing the
following components:
level |
a data frame containing the extracted signal level. |
slope |
a 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
, 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.
Roland Fried, Karen Schettlinger and Matthias Borowski
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.
Gather, U., Schettlinger, K., Fried, R. (2006)
Online Signal Extraction by Robust Linear Regression,
Computational Statistics 21(1),
33-51.
Schettlinger, K., Fried, R., Gather, U. (2006) Robust Filters for Intensive Care Monitoring: Beyond the Running Median, Biomedizinische Technik 51(2), 49-56.
robreg.filter
# 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)
# Online filtering with LQD filter:
y.rr <- lqd.filter(y,width=41,online=FALSE)
plot(y.rr)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.