我得到了一份为期4年的资产回报时间序列,并试图执行滚动窗口,以估计具有6个月校准期的方差-协方差矩阵。
通常情况下,将5种资产在20天内的回报收集到一个矩阵中作为数据集。
但是,将窗口大小设置为5时,对于第一个矩阵,代码考虑了1、2、3、4、5天,但对于第二个矩阵,代码只考虑了2、3、4、5、6天(而不是我想要的4、5、6、7、8)。这就是我的问题。我不知道如何修改代码以便从第2天到第4天进行“分割”。
我该如何解决这个问题?
通常情况下,将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天。以此类推,使用滚动窗口(我已经尝试使用循环来实现这一点)。
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, ], ])
}
}
far-loop
的代码似乎不起作用。2)你希望如何展示结果? - MKR