I suggest you take a break and consider that in order to help you, it is required that you state ALL the assumptions and provide a complete example. Since the book is not generally available, and you have told us very little about the problem and its assumptions (other than a page and example number), then you shouldn't expect much help.
Alexios PS How did you come up with the numbers for mu_stress, variance_quiet and variance_stress? From what I am told, the book example provides the annualized values and you are required to calculate the 10-day VaR (so you are required to rescale the numbers to their 10-day equivalents). On 25/04/2014 11:23, Johannes Moser wrote: > Thanks a lot, Alexios! > I have corrected this issue. The result is the same, though. > > I forgot to mention that the RUGARCH-package is required to run the code. > > At the moment I try to find the error in either > - my own theoretical thoughts (e.g. confusing the scale parameter with > the standard deviation) > - the implementation made by C.Alexander (on page 117 she writes in a > footnote: "In general, if X has distribution F(x) and Y=aX, a being a > constant, then y has distribution function a^(−1) * F(x)". Either I am > completely burnout right now, or this must be "F(a^(−1)*x)" in the end. > So maybe this is not just a typo, but also incorrectly implemented in > the quite complicated EXCEL formula.) > - some EXCEL or R issue. I think her EXCEL syntax has been programmed in > version 2003, but I`m running 2010. > > Any help is appreciated a lot! > > > > Am 25.04.2014 11:46, schrieb Alexios Ghalanos: >> A quick look at your code suggests that you should use "std" (student) >> not "sstd" (skew student) for distribution. >> >> Alexios >> >>> On 25 Apr 2014, at 09:49, Johannes Moser <jzmo...@gmail.com> wrote: >>> >>> Dear R community, >>> >>> in trying to set up a little simulation study I adapt the ideas found in >>> "Carol Alexander: Market Risk IV - Value at Risk Models" on page 111 ff. >>> and implement them in R. >>> This project is about student t mixture distributions and Value at Risk >>> / Expected Shortfall. >>> >>> The following code is my setup so far, and the syntax is calibrated to >>> resemble the Example 2.23 on page 118 in the mentioned book of >>> Alexander. There is a EXCEL-file coming with the book and I noticed >>> that my results don`t match the results of the EXCEL implementation. >>> >>> e.g. my result for theta=0.001 is >>> >>> 0.0841052 (method 1) and >>> >>> 0.0842109 (method 2) >>> ... but the EXCEL-file coming with the book says that it was 0.1152 >>> >>> >>> setting theta=0.01 gives >>> >>> 0.04493586 (method 1) and >>> >>> 0.04490717 (method 2) >>> >>> ... but the EXCEL-file coming with the book says that it was 0.0616 >>> >>> >>> Maybe some of you guys have this book at hand and are able to verify and >>> hopefully find a solution for my worries. >>> Or even if you don`t have the book you might still be able to assess the >>> correctness of my approach and implementation? >>> >>> >>> >>> >>> ################################################################################################## >>> >>> # SET UP MIXTURE INGREDIENTS (calibrate to C.Alexander Market Risk >>> Analysis IV Exercise 2.23) >>> >>> p_quiet <- 0.75 >>> mu_quiet <- 0.0 >>> mu_stress <- -0.0004 >>> df_quiet <- 10 >>> df_stress <- 5 >>> variance_quiet <- 0.0126^2 >>> variance_stress <- 0.0253^2 >>> theta <- 0.001 >>> >>> >>> # METHOD_1) Backing out mixture VaR from implicit analytic formula: >>> find_quant <- function(quant) { >>> (p_quiet*pdist(distribution = "sstd", >>> (quant-mu_quiet)/sqrt(variance_quiet) , mu = 0, sigma = 1, shape = >>> df_quiet) >>> + (1-p_quiet)*pdist(distribution = "sstd", >>> (quant-mu_stress)/sqrt(variance_stress) , mu = 0, sigma = 1, shape = >>> df_stress) - theta) >>> } >>> bestquant <- uniroot(f = find_quant, interval = c(-5, 1)) >>> t_mix_VaR1 <- -bestquant$root >>> >>> >>> # METHOD_2) Estimating mixture VaR by simulation: >>> nsim <- 10000000 >>> u_mix <- x <- 1*(runif(nsim) < p_quiet) >>> t_quiet <- rdist(distribution = "sstd", nsim , mu = mu_quiet, sigma = >>> sqrt(variance_quiet), shape = df_quiet) >>> t_stress <- rdist(distribution = "sstd", nsim , mu = mu_stress, sigma = >>> sqrt(variance_stress), shape = df_stress) >>> t_mixture <- u_mix*t_quiet + (1-u_mix)*t_stress >>> t_mix_VaR2 <- as.numeric(-quantile( t_mixture , probs=theta )) >>> >>> # Compare results >>> t_mix_VaR1 >>> t_mix_VaR2 >>> ################################################################################################## >>> >>> >>> >>> >>> >>> The EXCEL spreadsheet "EX_IV.2.23" in the workbook "Examples_IV.2.xls" >>> has been used and modified as follows: >>> 1) change the risk horizon to 1 day (so that there would be no scaling >>> and the autocorrelation doesn`t matter) >>> 2) if necessary change the significance level (1% or 0,1% in my example) >>> 3) press F11 to recalcualte the mixture parameters over the risk horizon >>> 4) apply EXCEL SOLVER to line C24 while allowing for changing cell C25 >>> to get the t Mixture VaR >>> >>> Thanks a lot for any ideas or suggestions! >>> Johannes >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> [[alternative HTML version deleted]] >>> >>> _______________________________________________ >>> R-SIG-Finance@r-project.org mailing list >>> https://stat.ethz.ch/mailman/listinfo/r-sig-finance >>> -- Subscriber-posting only. If you want to post, subscribe first. >>> -- Also note that this is not the r-help list where general R >>> questions should go. >>> > _______________________________________________ R-SIG-Finance@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-finance -- Subscriber-posting only. If you want to post, subscribe first. -- Also note that this is not the r-help list where general R questions should go.