У меня есть 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, ], ])
}
}
far-loop
не работает. 2) Как вы хотите показывать результаты? - person MKR   schedule 15.04.2018