- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 4 年的 Assets 返回时间序列,我正在尝试执行滚动窗口以估计校准期为 6 个月的方差-协方差矩阵。
一般来说,将包含 5 种 Assets 20 天内 yield 的矩阵视为数据集
data <- matrix(rnorm(100), 20, 5) #data represents the returns of 5 assets over 20 days
我想校准 5 天 yield 的协方差矩阵,因此考虑第 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, ], ])
}
}
最佳答案
扩展 OP 方法的解决方案是使用另一个变量 skip
。根据反馈,OP 似乎想要计算前 5
行 (1:5
) 的 cov
,然后想要跳过
code> 3 行计算 cov
行 (4:9
) 等等。
embed
的使用创建了大小为 5
的窗口,但跳过了 1
。我们可以跳过行找到行索引的selected_windows
,然后应用cov
函数。
window.size <- 5
skip <- 3
windows <- embed(1:nrow(data), window.size)
selected_windows <- windows[(1:nrow(windows) %% skip) == 1, ]
# [,1] [,2] [,3] [,4] [,5]
# [1,] 5 4 3 2 1
# [2,] 8 7 6 5 4
# [3,] 11 10 9 8 7
# [4,] 14 13 12 11 10
# [5,] 17 16 15 14 13
# [6,] 20 19 18 17 16
#One can use for-loop or apply to calculate "cov" on group of rows and get the result
apply(selected_windows, 1, function(x)list(cov(data[x,])))
关于协方差矩阵的滚动窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49843548/
在我的设置中,我试图有一个界面 Table继承自 Map (因为它主要用作 map 的包装器)。两个类继承自 Table - 本地和全局。全局的将有一个可变的映射,而本地的将有一个只有本地条目的映射。
Rust Nomicon 有 an entire section on variance除了关于 Box 的这一小节,我或多或少地理解了这一点和 Vec在 T 上(共同)变体. Box and Vec
我是一名优秀的程序员,十分优秀!