使用performanceanalytics包计算风险价值

时间:2017-06-12 10:20:21

标签: r performanceanalytics risk-analysis

我试图计算一个列表auf股票收益的风险价值。有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 个答案:

答案 0 :(得分:0)

我认为问题出在您的数据中。当您指定窗口时,历史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时,我就会停止收到错误。所以,也许你可以尝试改变你的自信心水平,然后看看。

另见thisthis