Расчет стоимости на риск с пакетом Performanceanalytics
Я пытался рассчитать стоимость под риском для списка на фондовых возвратах. Есть 1000 наблюдений, но я хотел посчитать так:
VaR for observation:
1 to 500
2 to 501
3 to 502
4 to 503
and 500 to 999
как видите результат будет 500 расчетов.
Чтобы решить проблему, я попытался использовать if
состояние с for
петля.
как это:
if(x < 501 & y < 1000){for(i in KO.Returns){VaR(KO.Returns[x: y], p = 0.95, method = "historical")}}
Если я использую упомянутый код, я получаю следующий код ошибки:
Расчет VaR дает ненадежный результат (обратный риск) для столбца 1:
1 ответ
Я думаю, что проблема в ваших данных. Когда вы указываете свое окно, вычисление исторического VaR сортирует данные и выбирает 95-й процентиль. Иногда ваши данные не будут иметь отрицательного значения в этом процентиле, поэтому исторический VaR не имеет смысла (ваши потери не могут быть положительными значениями, потери всегда отрицательны). Отсюда и ошибка.
Я пытался воспроизвести подобные ошибки, используя следующий код:
library(PerformanceAnalytics)
data("edhec")
data = edhec[, 5]
valat = rollapply(data = data, width = 20,
FUN = function(x) VaR(x, p = 0.95, method = "historical"),
by.column = TRUE)
valat
Но когда я изменяю уровень доверия на p = 0.99
Я перестаю получать ошибку. Так что, может быть, вы можете попытаться изменить свой уровень доверия и посмотреть.