Estimativa do valor em risco rolante (VaR) usando R
Preciso executar uma estimativa VaR contínua dos retornos diários das ações. No começo, fiz o seguinte:
library(PerformanceAnalytics)
data(edhec)
sample<-edhec[,1:5]
var605<-rollapply(as.zoo(sample),width=60,FUN=function(x) VaR(R=x,p=.95,method="modified",invert=T),by.column=TRUE,fill=NA)
Ele executa o cálculo e retorna um objeto de zoológico, mas fornece uma série de avisos da seguinte maneira:
VaR calculation produces unreliable result (inverse risk) for column: 1 : -0.00030977098532231
Então, tentei o mesmo com amostra dos meus dados da seguinte maneira:
library(foreign)
sample2 <- read.dta("sample2.dta")
sample2.xts <- xts(sample2[,-1],order.by=as.Date(sample2$datadate,format= "%Y-%m-%d"))
any(is.na(sample2.xts))
var605<-rollapply(as.zoo(sample2.xts),width=60,FUN=function(x) VaR(R=x,p=.95,method="modified",invert=T),by.column=TRUE,fill=NA)
But is não retorna nenhum objeto zoo e fornece os seguintes avisos e erros:
VaR calculation produces unreliable result (inverse risk) for column: 1 : -0.0077322590200255
Error in if (eval(tmp < 0)) { : missing value where TRUE/FALSE needed
Called from: top level
De uma postagem anterior (Usando a função rollapply para o cálculo do VaR usando R) Entendo que a estimativa de rolagem não pode ser executada se estiver faltando a janela de rolagem completa, mas nos meus dados (sample2.dta) não há valores ausentes.
sample2.dta pode ser baixado dehttps://drive.google.com/file/d/0B8usDJAPeV85WDdDQTFEbGQwaUU/edit?usp=sharing
Alguém pode me ajudar a resolver e entender esse problema?