R语言调用cvgtest()函数始终报错找不到'model'对象如何解决
报错根因
cvgtest()是rugarch包提供的VaR覆盖率检验函数,触发该报错的核心原因是你手动拼接的传入list不符合函数的参数结构要求:函数内部逻辑会强制从传入的obj对象中索引model属性,你自行构造的list里没有这个字段,哪怕你认为自己不需要传入和model相关的内容,函数内部代码找不到对应字段就会直接抛出"找不到对象'model'"的错误。
修复方案
方案1:补全传入list的必填字段
你不需要真的传入一个拟合完成的模型对象,只要在之前构造的list里补上函数要求的model字段声明即可正常调用,示例代码:
# 补全必填的model字段后再调用 cvgtest(obj = list( loss = returns_stoxx[2226:3225], VaR = VaRStoxx95t$VaRStoXX95, p = 0.05, model = list(model = "custom") ))
注意:这里的
p参数要传超出VaR的尾部概率,95%置信水平对应p=0.05,不是你之前写的0.95,传错值会得到完全无效的检验结果。
方案2:换用适配裸VaR序列的检验函数
如果你只有单独计算好的VaR结果和收益率序列,没有对应的模型对象,直接用同包的VaRTest()函数更方便,不需要构造model字段,运行后会直接输出你需要的三类检验结果:
- 无条件覆盖检验
- 独立性检验
- 条件覆盖检验
调用示例:
# alpha为尾部概率,95%置信水平传0.05 VaRTest( alpha = 0.05, actual = returns_stoxx[2226:3225], VaR = VaRStoxx95t$VaRStoXX95 )
内容的提问来源于stack exchange,提问作者kiks6897
相关产品推荐
相关产品推荐

