
时间序列分析
|
433
rollapply(ts, 21, f)
函数 rollapply 会在时间序列 ts 的一个滑动窗口数据上重复调用函数 f,如下所示:
1. f(ts[1:21])
2. f(ts[2:22])
3. f(ts[3:23])
4. ... etc. ...
观察到函数 f 有一个向量值参数,函数 rollapply 保存函数 f 返回的值,然后将它们
打包到 zoo 对象中,并为每个值添加时间标签。时间标签的选择取决于函数 rollapply
的参数 align 的取值:
align="right"
时间标签取自最右边值的时间标签。
align="left"
时间标签取自最左边值的时间标签。
align="center"(默认)
时间标签取自中间值的时间标签。
默认情况下,函数 rollapply 将在连续的数据点重复应用函数 f,也可以设置每隔
n
个数据点计算函数 f。这里只要设置函数 rollapply 的参数 by =
n
,完成一次函数
计算后,将数据点向前移动
n
个点。例如,当计算时间序列的滚动标准差时,我们通常希
望每个数据窗口是分开的,而不是重叠的,因此我们将参数 by 的值设置为窗口的大小:
ibm_sds <- rollapply(ibm_5, width = 30, FUN = sd, by = 30, align = "right")
ibm_sds <- na.omit(ibm_sds)
head(ibm_sds)
默认情况下,rollapply 函数将返回一个对象,该对象具有与输入数据一样多的观测 ...