You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言PerformanceAnalytics包VaR函数返回计算结果不可靠错误排查

VaR报错原因及代码修正方案

报错根本原因

  • 你传入VaR()函数的是价格绝对差分,不符合函数对入参为相对收益率的要求
  • PerformanceAnalytics包的VaR()内置校验规则:普通多头资产的最大损失不会超过100%,即收益率不会低于-1。你计算得到的95%置信度VaR绝对值超过1,触发了「风险超过100%」的不可靠结果校验,因此返回兜底值-1并抛出警告。

代码问题修复

只需将绝对差分计算改为相对收益率计算即可,两种常用计算方式任选:

简单收益率

library(PerformanceAnalytics)

prices <- c(10.4, 11, 10.11, 9.19, 10.63, 9.68, 12.89, 9.8, 12.57, 8.23, 9.27,
            9.51, 10.51, 9.66, 9.52, 10.78, 9.47, 11.87, 11.33, 11.38, 11.16, 
            8.94)
# 计算简单收益率
returns <- ROC(prices, type = "discrete")
# 手动计算等价写法:returns <- diff(prices)/head(prices, -1)

# 计算VaR不会再触发警告
VaR(returns, p=.95, method="historical")
VaR(returns, p=.95, method="gaussian")
VaR(returns, p=.95, method="modified")

对数收益率

# 仅需修改收益率计算逻辑即可
returns <- ROC(prices, type = "continuous")
# 手动计算等价写法:returns <- diff(log(prices))

内容的提问来源于stack exchange,提问作者Ciniro Nametala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 22:06:03