我看过 ?filter
帮助文档,但是该函数对应的一般计算公式是啥,还是没搞明白。
下面是鼓捣的过程,首先看了个例子
x <- 1:10
filter(x, filter = rep(1/3, 3), sides = 1)
Time Series:
Start = 1
End = 10
Frequency = 1
[1] NA NA 2 3 4 5 6 7 8 9
对照帮助文档和例子,猜测参数 sides = 1
意味着 method = "convolution"
,过滤器 filter 相当于做移动平均,filter
是移动平均的参数值。即计算公式如下
\(y_i = \frac{1}{3} (x_{i - 2} + x_{i - 1} + x_{i}), \quad i \geq 3\)
调整权重后,发现
filter(x, filter = c(2/3, 1/6, 1/6), sides = 1)
Time Series:
Start = 1
End = 10
Frequency = 1
[1] NA NA 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5
\( y_i = \frac{1}{6} x_{i - 2} + \frac{1}{6} x_{i - 1} + \frac{2}{3} x_{i}, \quad i \geq 3 \)
filter = c(2/3, 1/6, 1/6)
传递的权重向量,按由近及远的顺序