我想测量两个向量之间的滚动相关性。如果我选择窗口宽度并测量相关性,大多数命令将不会在窗口的中心而是在末尾添加此相关性。
例如,如果窗口宽度为9,则第一个相关系数将在第9行。然而,测量的系数反映了窗口期间的平均相关性,因此该系数应位于第 5 行。
有谁知道一个命令(或一个包)可以让我将结果居中,因为手动通常很难正确调整日期。
rollapply 默认居中对齐。使用内置的 BOD 数据框:
library(zoo)
rollapply(BOD, 3, \(x) cor(x[, 1], x[, 2]), by.column = FALSE, fill = NA)
## [1] NA 0.9404315 0.6449020 -0.9148074 0.9131459 NA
# check
cor(BOD[1:3, 1], BOD[1:3, 2])
## [1] 0.9404315
cor(BOD[2:4, 1], BOD[2:4, 2])
## [1] 0.644902