时间序列的滚动总和与因子

Wol*_* Wu 5 r time-series filter

我试图计算一个r在T日期范围内的回报时间序列的滚动总和.但是,在我计算滚动总和的每个日期时,我想要计算滚动总和w中每个数字的权重.

该公式适用于每个日期t:

[Sum from i=1 to m](w(i)*r(t-i-1))
Run Code Online (Sandbox Code Playgroud)

让我们看一个非常简单的例子.我有一个T = 6返回的返回系列r.对于每个日期,t我想计算过去两个日期(m = 2)的滚动总和.我还想把第一次观察的重量增加到第二次.

r <- c(100,110,100,110,100,110)                 
w <- c(1,0.5)
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用过滤功能轻松完成滚动总和:

filter(r, rep(1, 2))
Run Code Online (Sandbox Code Playgroud)

但是我无法将权重因子包含在滚动总和中.以下行给出了错误的结果c(155, 155, 155, 155, 155, NA)

filter(r*w, rep(1, 2))
Run Code Online (Sandbox Code Playgroud)

在哪里我真的想得到结果 c(155, 160, 155, 160, 155, NA)

任何帮助表示赞赏.

Sve*_*ein 4

这是一种方法:

filter(r, rev(w))
# [1] 155 160 155 160 155  NA
Run Code Online (Sandbox Code Playgroud)

有关参数的重要信息filter来自帮助页面?filter

按逆时间顺序过滤
滤波器系数向量(对于 AR 或 MA 系数)。