【问题标题】:Historical Simulation VaR in R: VaR calculation produces unreliable result (risk over 100%)R中的历史模拟VaR:VaR计算产生不可靠的结果(风险超过100%)
【发布时间】:2016-10-04 00:09:15
【问题描述】:

我正在尝试使用 S&P500 的历史模拟方法计算 VaR。我使用了PerformanceAnalytics 包和

VaR(P1[1:1000], p =0.95, method = "historical")

但我收到如下错误消息:

VaR 计算对列 1 产生不可靠的结果(风险超过 100%):-1.68435909175

我使用的数据是日志返回计算as =LN(Today's close/Yesterday's close)*100,当我使用percentile 函数(PERCENTILE(B2:B1001,0.05))计算VaR 时,我得到-1.684 的值,如上。我知道这个包是在考虑退货的情况下编写的,但我不确定我的计算是否在概念上犯了错误,或者错误是由于我使用日志退货造成的。

在这种情况下,使用正常回报比使用对数回报更好吗?

【问题讨论】:

  • 我不知道这个包,但我假设如果你将日志返回输入函数,你会得到 VaR 作为日志返回。这意味着-1.684 是第 5 个百分位日志返回。如果你想把它变成一个正常的回报,把它取幂。

标签: r finance performanceanalytics risk-analysis


【解决方案1】:

显然VaR使用小数返回而不是百分比。将百分比返回传递给该函数时会看到相同的消息。或者使用quantile

> data(edhec)
> VaR(edhec[,1], p=.95, method="historical")
    Convertible Arbitrage
VaR              -0.01916
> quantile(edhec[,1],c(.05,.95))
      5%      95% 
-0.01916  0.02679 
> VaR(edhec[,1]*100, p=.95, method="historical")
VaR calculation produces unreliable result (risk over 100%) for column: 1 : 1.916
    Convertible Arbitrage
VaR                    -1
> quantile(edhec[,1]*100,c(.05,.95))
    5%    95% 
-1.916  2.679 

【讨论】:

    猜你喜欢
    • 2014-08-19
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 2020-11-28
    • 2020-02-24
    • 1970-01-01
    相关资源
    最近更新 更多