我需要计算股票收益的滚动 VaR。从这篇文章:使用 rollapply 函数使用 R 进行 VaR 计算,我了解到具有完全缺失案例的列会出错。但由于各个公司股票收益的起止日期不同,当数据从长格式转换为宽格式时会产生缺失值。可以仅使用没有缺失值的行进行估计,但这会导致数据严重丢失。因此,有没有办法对具有完整缺失值的列执行计算,对于缺失的列,得到输出“NA”。这就是我所做的:
library(PerformanceAnalytics)
data(managers)
VaR(managers, p=.95, method="modified")
它执行所需的计算,但是当我尝试使用前 60 行完全缺失“HAM6”列时
managers2<-managers[1:60,]
VaR(managers2, p=.95, method="modified")
我收到以下错误:
Error in dimnames(cd) <- list(as.character(index(x)), colnames(x)) :
'dimnames' applied to non-array
我知道错误是由于缺少“HAM6”列,但有没有办法保留缺少的列并为“HAM6”获取输出“NA”而不是删除“HAM6”列?我已经尝试了大多数可用于处理缺失值的方法,但找不到任何合适的解决方案。任何帮助深表感谢。