我得到了 4 年的资产回报时间序列,我正在尝试执行滚动窗口,以估计校准期为 6 个月的方差-协方差矩阵。
通常,将包含 5 种资产在 20 天内的收益的矩阵视为数据集
data <- matrix(rnorm(100), 20, 5) #data represents the returns of 5 assets over 20 days
我想校准 5 天内收益的协方差矩阵,因此考虑到第 1、2、3、4、5 天。然后我想校准另一个协方差矩阵,考虑到第 4、5、6、7、8 天。依此类推,使用滚动窗口(我曾尝试使用循环 for)。
window.size <- 5
但是将窗口大小设置为 5,对于第一个矩阵,代码考虑第 1、2、3、4、5 天,但对于第二个矩阵,代码考虑第 2、3、4、5、6 天(不是 4 , 5, 6, 7, 8 我想要的)。这是我的问题。我不知道如何修改代码以便从第 2 天到第 4 天进行这种“拆分”。我该如何解决这个问题?
window.size <- 5 #set the size of the window equal to 5 days
windows <- embed(1:nrow(data), window.size)
forApproach <- function(data, windows) {
l <- vector(mode="list", length=nrow(windows))
for (i in 1:nrow(data)) {
l[[i]] <- cov(data[windows[i, ], ])
}
}