This is exactly what I want. However, with my function it produces a vector of NAs ...
Gabor Grothendieck <ggrothendi...@gmail.com> schrieb am 16:23 Sonntag, 28.Mai 2017: Maybe you want this.It computes VaRfun(r[c(i-500, i-1)] for each i for which the argument to r makes sense. rollapply(r, width = list(c(-500, -1)), FUN = VaRfun), On Sat, May 27, 2017 at 5:29 PM, Sepp via R-help <r-help@r-project.org> wrote: > Hello, > I am fairly new to R and trying to calculate value at risk with exponentially > decreasing weights.My function works for a single vector of returns but does > not work with rollapply(), which is what I want to use. The function I am > working on should assig exponentially decreasing weights to the K most recent > returns and then order the returns in an ascending order. Subsequently it > should pick the last return for which the cumulative sum of the weights is > smaller or equal to a significance level. Thus, I am trying to construct a > cumulative distribution function and find a quantile. > This is the function I wrote: > VaRfun <- function(x, lambda = 0.94) { > #create data.frame and order returns such that the lates return is the first > df <- data.frame(weight = c(1:length(x)), return = rev(x)) K <- nrow(df) > constant <- (1-lambda)/(1-lambda^(K))#assign weights to the returns for(i > in 1:nrow(df)) { df$weight[i] <- lambda^(i-1) * constant }#order > returns in an ascending order df <- df[order(df$return),] > #add the cumulative sum of the weights df$cum.weight <- cumsum(df$weight) > #calculate value at risk VaR <- -tail((df$return[df$cum.weight <= .05]), 1) > signif(VaR, digits = 3)} > It works for a single vector of returns but if I try to use it with > rollapply(), such as > rollapply(r, width = list(-500, -1), FUN = VaRfun), > it outputs a vector of NAs and I don't know why. > Thank you for your help! > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.