2014-01-11 3 views
0

У меня есть матрица (V) с ежедневной доходностью акций между определенным периодом времени, на котором я пытаюсь получить дисперсию , предшествующей 1-месячный (= 21 день) и 6 месяцев (= 126 дней).R - rollapply с обратным окном

Так я буду делать это на основе будущих данных за 1 месяц и 6 месяцев.

Variance.x <- rollapply(data=V, width=21, var, by.column=F, align="right") 
Variance.x <- rollapply(data=V, width=126, var, by.column=F, align="right") 

Любые предложения?

ответ

3

Это дает дисперсию, закрывающую будущие 21 периодов, предполагая z является многомерный зоопарк серии:

lag(rollapply(z, 21, function(x) c(var(x)), by.column = FALSE, align = "left")) 

Поскольку дисперсия представляет собой матрицу, мы должны выровнять его в функции, как показано здесь, и это должно быть сделано ли мы вычисляем будущие или прошлые отклонения.

Вышеуказанное не включает текущую точку в будущих точках. Если бы было 21 очко, начиная с и в том числе и настоящего, то мы бы опустили lag.