R

您所在的位置:网站首页 filter函数过滤或Java R

R

2023-03-12 21:57| 来源: 网络整理| 查看: 265

filter 时间序列上的线性过滤 Description

对单变量时间序列或多变量时间序列的每个序列分别应用线性滤波。

Usage filter(x, filter, method = c("convolution", "recursive"), sides = 2, circular = FALSE, init) Arguments x

单变量或多变量的时间序列。

filter

滤波器系数的向量,时间顺序相反(如AR或MA系数)。

method

任一 "convolution" 或 "recursive" (和可缩写)。如果 "convolution" 使用移动平均线:如果 "recursive" 使用自回归。

sides

仅用于卷积滤波器。如果 sides = 1 则滤波器系数仅适用于过去的值;如果 sides = 2 它们以滞后 0 为中心。在这种情况下,过滤器的长度应该是奇数,但如果是偶数,则更多的过滤器在时间上向前而不是向后。

circular

仅用于卷积滤波器。如果为 TRUE ,则将过滤器环绕在系列的末端,否则假设缺少外部值 ( NA )。

init

仅用于递归过滤器。指定在起始值之前的时间序列的初始值,以相反的时间顺序。默认是一组零。

Details

在 x 中允许缺失值,但在 filter 中不允许(它们会导致输出中到处都有缺失值)。

请注意,在递归滤波器的滞后0处有一个隐含的系数1,这就得到了

y[i] = x[i] + f[1]*y[i-1] + … + f[p]*y[i-p]

没有检查递归滤波器是否是可逆的:如果不是的话,输出可能会出现偏差。

卷积滤波器是

y[i] = f[1]*x[i+o] + … + f[p]*x[i+o-(p-1)]

其中 o 是偏移量:有关如何确定,请参见 sides 。

Value

一个时间序列对象。

Note

convolve(, type = "filter") 使用 FFT 进行计算,因此对于单变量序列上的长滤波器可能更快,但它不返回时间序列(因此时间对齐不清楚),也不处理缺失值. 例如,对于长度为 1000 的系列中长度为 100 的过滤器, filter 更快。

See Also

convolve, arima.sim

Examples x


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3