Schätzung des rollierenden Value at Risk (VaR) anhand von R

Ich muss eine rollierende VaR-Schätzung der täglichen Aktienrenditen durchführen. Zuerst habe ich folgendes gemacht:

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)

Es führt die Berechnung durch und gibt ein Zooobjekt zurück, gibt jedoch eine Reihe von Warnungen wie folgt aus:

VaR calculation produces unreliable result (inverse risk) for column: 1 : -0.00030977098532231 

Dann habe ich dasselbe mit Beispiel meiner Daten wie folgt versucht:

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)

Is gibt jedoch kein Zoo-Objekt zurück und gibt die folgenden Warnungen und Fehler aus:

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

Aus einem früheren Beitrag (Verwendung der Rollapplikationsfunktion für die VaR-Berechnung mit R) Ich verstehe, dass eine fortlaufende Schätzung nicht durchgeführt werden kann, wenn ein vollständiges fortlaufendes Fenster fehlt, aber in meinen Daten (sample2.dta) fehlen keine Werte.

sample2.dta kann von heruntergeladen werdenhttps://drive.google.com/file/d/0B8usDJAPeV85WDdDQTFEbGQwaUU/edit?usp=sharing

Kann mir jemand helfen, dieses Problem zu lösen und zu verstehen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage