I'm reading about this approach of using GARCH-EVT-copula methodology to separate univariate and joint estimation and then estimate for example VaR and ES. I wanted to try something similar, but my attempt failed miserably. Anyone of you sees a mistake in the methodology outlined below? Any hint is appreciated!

I took a few series, computed log returns, and multiplied them by -1 (so that I have losses on the right and returns on the left). Then I used this approach:

1) ARMA-GARCH fitting according to AIC (using the rugarch package);

2) obtain standardized residuals $z_t = \frac{\epsilon_t}{\sigma_t}$;

3) semi-parametric modeling of $z_t$ using a generalized Pareto distribution for upper and lower tails (thresholds at 10% and 90%) and Gaussian kernel for the interior part (using the spd package);

4) transformation in uniform margins using the pspd command from the previous package;

5) copula fitting using an Archimedean copula model via maximum likelihood (since ML could not be evaluated in all points, I transformed the uniform margins in pseudo-observations using the pobs command before fitting);

6) since I want a time-varying copula approach, I use a moving window of 1000 observations to estimate a time-varying Archimedean copula parameter, and fit an ARIMA in order to do forecasting;

7) given predicted copula parameters (thanks to previous ARIMA specification), N copula realizations are simulated from day $t+1$ to $T$;

8) using the qspd command, I transform copula realizations back in standardized residuals $z_{t}$;

9) I insert estimated $z_t$ back in ARMA-GARCH specification, compute log returns, transform in simple returns, and calculate return of equally weighted portfolio;

10) now I have N returns for each day, and can compute required VaR as the $\alpha$-quantile (90, 95, 97.5, 99, ...).

Now the staggering surprise: this methodology failed miserably for me for relatively moderate quantiles (90, 95 and 97.5) and more extreme quantiles (99, 99.5, 99.9). I obtain a number of violations which is WAY more than expected. Any reason why? Is there a mistake in the steps mentioned?

  • $\begingroup$ Are you using actual historical asset returns or simulated returns for this? $\endgroup$
    – John M
    Jun 8, 2016 at 2:53
  • $\begingroup$ I'm using 2000 historical daily log returns to estimate the ARMA-GARCH coefficients, the GPD parameters and the time series of the copula parameter. Once I have this time series, I estimate the ARIMA so that I forecast the 1-step ahead parameter and simulate N copula realizations for (t+1); then again forecasting 1-step ahead parameter and simulation of N realizations for (t+2) and so on until the end of the forecasting period. Then steps 8 to 10. $\endgroup$
    – Kondo
    Jun 8, 2016 at 7:27
  • $\begingroup$ I suggest you use a Monte Carlo simulated returns with a normal distribution to help you debug your problem. $\endgroup$
    – John M
    Jun 8, 2016 at 12:21
  • $\begingroup$ John, may I ask you what you mean exactly? Simulate random draws from a multivariate normal and interpret these as returns? Also how would I calibrate mean vector and covariance matrix if that's the case, with sample mean and covariance? $\endgroup$
    – Kondo
    Jun 9, 2016 at 13:47
  • 1
    $\begingroup$ Hi Kondo! Did you find the fault eventually? $\endgroup$ Mar 6, 2019 at 16:59


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.