The unique combination of the versatile, heavy-tailed MGL distribution with asymmetric multivariate GARCH processes and the least-squares filter empowers the model exhibit the following key-features
- Accomodate extreme market events
- Dynamically and asymmetrically model risks and returns according to changing market regimes
Subsequently, we achieve more accurate forecasts, and our solution has a clear edge when measuring asset- and portfolio risks vis-a-vis the models commonly employed by the industry. The superiority of our approach is visible in the following table, which shows the Value-at-Risk violations at the 1% confidence level (i.e. percentage average when the market fell below the forecasted Value-at-Risk) for ten random assets from the SP500 over the last 15 years.
| Ticker | Gaussian | Gaussian-GARCH | StudentsT | StudentsT-GARCH | Laplace | Laplace-GARCH |
|---|---|---|---|---|---|---|
| APC | 0.018 | 0.015 | 0.013 | 0.014 | 0.013 | 0.012 |
| AMZ | 0.014 | 0.019 | 0.012 | 0.011 | 0.013 | 0.011 |
| BRYN | 0.019 | 0.016 | 0.013 | 0.013 | 0.013 | 0.013 |
| JNJ | 0.028 | 0.019 | 0.023 | 0.014 | 0.024 | 0.014 |
| CMC | 0.033 | 0.021 | 0.021 | 0.017 | 0.021 | 0.017 |
| XONA | 0.026 | 0.026 | 0.013 | 0.021 | 0.017 | 0.019 |
| GOOGL | 0.026 | 0.022 | 0.015 | 0.014 | 0.015 | 0.013 |
| NCB | 0.02 | 0.022 | 0.016 | 0.013 | 0.016 | 0.012 |
| PFE | 0.022 | 0.025 | 0.016 | 0.019 | 0.016 | 0.016 |
| UNH | 0.024 | 0.02 | 0.013 | 0.014 | 0.012 | 0.013 |
| Avg. | 0.023 | 0.0205 | 0.0155 | 0.015 | 0.016 | 0.014 |
Laplace-GARCH enotes our model. Note that values closer to 1%, are better; that is, a perfect model with an infinite amount of sample data would exhibit 1% or 0.01 violations.
In addition to superior performance, a strategic and highly efficient implementation results in a low execution time, which allows us to apply our approach to large-scale portfolios:
| Assets | Model-estimation | Value-at-Risk | Total |
|---|---|---|---|
| 1 | 8.14 | 1.09 | 9.23 |
| 5 | 16.7 | 1.45 | 18.15 |
| 10 | 24.5 | 1.45 | 25.95 |
| 50 | 107 | 1.53 | 108.53 |
| 100 | 240 | 2.49 | 242.49 |
The running times are given in 1/1000 seconds (i.e. it takes less than a 1/4 of a second to process a 100 asset portfolio). Note, we used the following lower mid-spec system: Core™ i3-8109U CPU @ 3.00GHz × 2 with 7.7 GB RAM.
Moreover, the following table shows that the computation times of our model is overall lower than that of available reference models:
# Estimate model paramter:
Gaussian GARCH (arch-package), 100 loops, best of 3: 15.4 msec per loop
Student-t GARCH (arch-package): 100 loops, best of 3: 23.6 msec per loop
Laplace GARCH (our model): 100 loops, best of 3: 14.6 msec per loop
# Compute Value-at-Risk:
Gaussian GARCH (arch-package): 10000 loops, best of 3: 90 usec per loop
Student-t GARCH (arch-package): 10000 loops, best of 3: 191 usec per loop
Laplace GARCH (our model): 10000 loops, best of 3: 1120 usec per loopThe reference implementations are from the well-respected arch Python package.
Some notes about the comparison:
- These times refer to a single-asset portfolio, simply because there is no (publicly) available package in Python supporting GARCH in a multivariate setting.
- It takes much longer (relatively) to compute the Value-at-Risk with our model because there is no closed-form expression available and we need to resort to numerical integration. However, since the Value-at-Risk computation takes much less of the total computation time and scales sub-linearly, this does not matter.
- Note the significant difference vis-a-vis the Student-t model, which also features heavy tails is of similar complexity and computational requirements. While the difference in estimation time is small vis-a-vis the Gaussian model, this is expected as the estimation process of the Gaussian model is much less complicated than the ones of their heavy-tailed cases.