带因子的时间序列的滚动和

标签 r filter time-series

我正在尝试计算 yield 时间序列的滚动总和 r跨越 T 日期。但是,在计算滚动总和的每个日期 t,我想考虑权重 w对于滚动总和中的每个数字。

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

[Sum from i=1 to m](w(i)*r(t-i-1))

让我们看一个非常简单的例子。我有一个 T=6 返回的返回系列 r .每个日期 t我想计算过去两个日期的滚动总和 (m=2)。我还想将第一个观察结果加权为第二个观察结果的两倍。
r <- c(100,110,100,110,100,110)                 
w <- c(1,0.5)

我知道我可以使用过滤器功能轻松地进行滚动求和:
filter(r, rep(1, 2))

但是,我无法将权重因子包含在滚动总和中。以下行给出了 c(155, 155, 155, 155, 155, NA) 的错误结果
filter(r*w, rep(1, 2))

我真的很想得到结果 c(155, 160, 155, 160, 155, NA)
任何帮助表示赞赏。

最佳答案

这是一种方法:

filter(r, rev(w))
# [1] 155 160 155 160 155  NA

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

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

关于带因子的时间序列的滚动和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20994826/

相关文章:

Shiny 应用程序中的 RMarkdown

r - R 中的输出有单独的屏幕吗?

r - 如何在R中仅当满足所有条件时才过滤行

r - R align.time/aggregate 中的错误?

r - 将额外参数传递给 ggplot2 中的自定义几何图形

angularjs - ngTable 选择所有过滤后的数据

java - Java中列表的增量过滤

python - 在 Python 中从具有多个多元时间序列的数据帧创建数组数组

r - Auto.arima() 函数不会产生白噪声。我还应该如何进行数据建模

r - 如何从另一个 df 的值子集创建一个新的 df?