Applies linear filtering to a univariate time series or to each series separately of a multivariate time series.

1 2 |

`x` |
a univariate or multivariate time series. |

`filter` |
a vector of filter coefficients in reverse time order (as for AR or MA coefficients). |

`method` |
Either |

`sides` |
for convolution filters only. If |

`circular` |
for convolution filters only. If |

`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. |

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[1]*y[i-1] + … + f[p]*y[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[1]*x[i+o] + … + f[p]*x[i+o-(p-1)]*

where `o`

is the offset: see `sides`

for how it is determined.

A time series object.

`convolve(, type = "filter")`

uses the FFT for computations
and so *may* be faster for long filters on univariate series,
but it does not return a time series (and so the time alignment is
unclear), nor does it handle missing values. `filter`

is
faster for a filter of length 100 on a series of length 1000,
for example.

`convolve`

, `arima.sim`

1 2 3 4 5 6 |

What can we improve?

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.

Close