madore.filter {robfilter}R Documentation

A Robust Adaptive Online-Filter for Multivariate Time Series

Description

Procedure for robust online extraction of low frequency components (the signal) from a multivariate time series by a moving window technique with adaptive window width selection (multivariate adaptive online repeated median filter).

Usage

madore.filter(Y, byrow=FALSE, 
                 min.width=20, max.width=200, start.width=min.width, 
                 test.sample.size=min.width/2, width.search="geometric", 
                 rtr.size=10, extraction.lag=0, 
                 NA.sample.size=10, minNonNAs=5)

Arguments

Y a numeric matrix or (multivariate) time series object.
byrow logical. If FALSE (the default), the filtering is done by columns, otherwise the filtering is done by rows.
min.width a positive integer >= 10 specifying the minimal width of the moving time window.
max.width a positive integer >= min.width specifying the maximal width of the moving time window. If min.width = max.width, the window width is fixed.
start.width a positive integer >= min.width, <= max.width specifying the width of the first time window and thus the time point of the first signal estimation.
test.sample.size a positive integer >= 5, <= min.width defining the number of the most recent Repeated Median (RM) regression residuals within each time window. The RM residuals are used for the goodness of fit test from the univariate adore.filter. At each time point t this test serves for determining an adequate window width n(t). For more details, see Schettlinger, Fried, Gather (2008).
width.search a character specifying the way of determining an adequate window width n(t); width.search can be either "linear", "binary" or "geometric". If the null hypothesis of a 'good fit' (see test.sample.size) is rejected for the window width n*(t)=min[n(t-1)+1, max.width], where n(t-1) is the adapted window width at the previous time point, n(t) must be chosen smaller than n*(t) to obtain an adequate regression fit.
If width.search = "linear", n(t) is determined by decreasing n*(t) stepwise by one until the null hypothesis cannot be rejected or n(t) is equal to min.width.
If width.search = "binary", n(t) is determined by nested intervals within [min.width, n*(t)] such that n(t) leads to an adequate regression fit.
If width.search = "geometric", the smallest i=1, 2, ... is determined such that n*(t)-2^i is adequate or such that n*(t)-2^i is not bigger than min.width, respectively. Then n(t) is determined by nested intervals within [n*(t)-2^i, n*(t)-2^{i-1}] such that n(t) leads to an adequate regression fit.
rtr.size a non-negative integer specifying the size of a subset of the most recent observations within each window. The signal estimation is restricted to the range of the observations within this subset.
extraction.lag a non-negative integer <= min.width/2. At each time t the signal is estimated at the position t-extraction.lag within the time window (t-n(t)+1,...,t).
NA.sample.size a positive integer >= 10, <= min.width specifying the size of a subset of the most recent observations within each window. See minNonNAs.
minNonNAs a positive integer >= 5, <= NA.sample.size. If a variable does not offer at least minNonNAs non-missing observations within the subset specified by NA.sample.size, the signal is not estimated for this variable at this time point t.

Details

The madore.filter is based on Repeated Median regression (Siegel, 1982) in moving time windows and serves for separating signals from noise and outliers in multivariate time series. At each time point t the test procedure of the adaptive online Repeated Median filter (Schettlinger, Fried, Gather, 2008) is used to determine an appropriate window width n(t) in [min.width, max.width]. Then the signal vector at time t is estimated within the time window (t-n(t)+1,...,t) by a slight modification of the multivariate Trimmed Repeated Median-Least Squares regression (Lanius, Gather, 2004). A more detailed description of the filter can be found in Borowski, Schettlinger, Gather (2008).

Value

madore.filter returns an object of class madore.filter. An object of class madore.filter is a list containing the following components:

signals a matrix containing the estimated signal vectors at each time point t.
widths a matrix containing the individual window widths of each variable at each time point t.
overall.width a vector containing the overall window widths at each time point t.

In addition, the original input data is returned as list member Y, and the settings used for the analysis are returned as the list members byrow, min.width, max.width, start.width, test.sample.size, width.search, rtr.size, extraction.lag, NA.sample.size, and minNonNAs. Application of the function plot to an object of class madore.filter returns a plot showing the original multivariate time series with the filtered output.

Author(s)

Matthias Borowski

References

Borowski, M., Schettlinger, K., Gather, U. (2008) Multivariate Real Time Signal Extraction by a Robust Adaptive Regression Filter, submitted.

Lanius, V., Gather, U. (2007) Robust Online Signal Extraction from Multivariate Time Series, Technical Report 38/07, SFB 475, Universität Dortmund, Germany.

Schettlinger, K., Fried, R., Gather, U. (2008) Real Time Signal Processing by Adaptive Repeated Median Filters, International Journal of Adaptive Control and Signal Processing, submitted.

Siegel, A.F. (1982) Robust Regression Using Repeated Medians, Biometrika 69 (1), 242-244.

See Also

robreg.filter, adore.filter.

Examples

# load multivariate time series sample
data(multi.ts)

# extract signals from 'multi.ts' by madore.filter
# this may take some time, depending on your system
extr <- madore.filter(multi.ts, min.width=30, max.width=100, extraction.lag=5)
plot(extr)

[Package robfilter version 2.3 Index]