Расчет стоимости на риск с пакетом 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Я перестаю получать ошибку. Так что, может быть, вы можете попытаться изменить свой уровень доверия и посмотреть.

Также увидеть это и это.

Другие вопросы по тегам