Applies linear filtering to a univariate time series or to each series
separately of a multivariate time series.
Usage
filter(x, ...)
## S3 method for class 'tis':
filter(x, \dots)
## S3 method for class 'default':
filter(x, filter, method = c("convolution", "recursive"),
sides = 2, circular = FALSE, init, ...)
Arguments
x
a univariate or multivariate time series.
...
arguments passed along to filter.default, which is
actually the version of filter from the stats
package. The ...argument is ignored in filter.default
filter
a vector of filter coefficients in reverse time order
(as for AR or MA coefficients).
method
Either "convolution" or "recursive" (and
can be abbreviated). If "convolution" a moving average is
used: if "recursive" an autoregression is used.
sides
for convolution filters only. If sides=1 the
filter coefficients are for past values only; if sides=2
they are centred around lag 0. In this case the length of the
filter should be odd, but if it is even, more of the
circular
for convolution filters only. If TRUE, wrap
the filter around the ends of the series, otherwise assume
external values are missing (NA).
init
for recursive filters only. Specifies the initial values
of the time series just prior to the start value, in reverse
time order. The default is a set of zeros.
Value
A tis time indexed series if x has class tis,
otherwise a class ts time series.
Details
Missing values are allowed in x but not in filter
(where they would lead to missing values everywhere in the output).
Note that there is an implied coefficient 1 at lag 0 in the
recursive filter, which gives
$$y_i = x_i + f_1y_{i-1} + \cdots + f_py_{i-p}$$
No check is made to see if recursive filter is invertible:
the output may diverge if it is not.
The convolution filter is
$$y_i = f_1x_{i+o} + \cdots + f_px_{i+o-p-1}$$
where o is the offset: see sides for how it is determined.