Volatiliteit en extreme waarden

Kwantitatief risicobeheer in Python

Jamsheed Shorish

Computational Economist

Aannames van de Chow-toets

  • Chow-toets: bepaal de statistische significantie van een mogelijke structurele breuk
  • Vereist: vooraf gespecificeerd breekpunt
  • Vereist: lineair verband (bv. factormodel) $$ \log(\text{Population}_t) = \alpha + \beta * \text{Year}_t + u_t $$

Afbeelding van bevolkingsgroei China met aangegeven breekpunt

Kwantitatief risicobeheer in Python

Signalen van structurele breuk

  • Visualisatie van de trend laat mogelijk geen breekpunt zien
  • Alternatief: bekijk volatiliteit in plaats van de trend
    • Structurele verandering gaat vaak samen met meer onzekerheid => volatiliteit
    • Maakt rijkere modellen mogelijk (bv. stochastische volatiliteit)

Afbeelding van maandelijkse volatiliteit met mogelijke breekpunten

Kwantitatief risicobeheer in Python

Volatiliteit met schuivend venster

  • Schuivend venster: bereken volatiliteit in de tijd en detecteer veranderingen
  • Herinner: 30-daags schuivend venster

    • Maak een schuivend venster met de methode ".rolling()"
    • Bereken de volatiliteit van het venster (laat ontbrekende datums weg)
    • Bereken samenvattingsstatistiek, bv. .mean(), .min(), etc.

     

rolling = portfolio_returns.rolling(30)

volatility = rolling.std().dropna()
vol_mean = volatility.resample("M").mean()
Kwantitatief risicobeheer in Python

Volatiliteit met schuivend venster

  • Visualiseer de resulterende volatiliteit (variantie of standaardafwijking)
import matplotlib.pyplot as plt
vol_mean.plot(
  title="Monthly average volatility"
).set_ylabel("Standard deviation")
plt.show()

Afbeelding van gemiddelde maandelijkse volatiliteit

Kwantitatief risicobeheer in Python

Volatiliteit met schuivend venster

  • Visualiseer de resulterende volatiliteit (variantie of standaardafwijking)
  • Grote veranderingen in volatiliteit => mogelijke structurele breukpunt(en)
  • Gebruik voorgestelde breukpunten in lineair model van volatiliteit
    • Variant op de Chow-toets
  • Richtlijn voor toepassing van bv. ARCH, stochastische volatiliteitsmodellen
vol_mean.pct_change().plot(
  title="$\Delta$ average volatility"
).set_ylabel("% $\Delta$ stdev")
plt.show()

Afbeelding van procentuele verandering in maandelijkse volatiliteit

Kwantitatief risicobeheer in Python

Extreme waarden

  • VaR, CVaR: maximaal verlies, verwacht tekort bij een bepaald betrouwbaarheidsniveau
  • Veranderingen in maximaal verlies visualiseren door VaR te plotten?
    • Handig voor grote datasets
    • Kleine datasets: te weinig informatie
  • Alternatief: vind verliezen die een drempel overschrijden
  • Voorbeeld: $\text{VaR}_{95}$ is het maximale verlies 95% van de tijd
    • Dus 5% van de tijd overschrijden verliezen $\text{VaR}_{95}$
  • Backtesting: gebruik historische data ex-post om te zien hoe de risicoschatting presteert
    • Veel gebruikt in enterprise risk management
Kwantitatief risicobeheer in Python

Backtesting

  • Stel $\text{VaR}_{95} = 0.03$
  • Verliezen boven 3% zijn dan extreme waarden
  • Backtesting: rond 5% (100% - 95%) van eerdere verliezen moet > 3% overschrijden
    • Meer dan 5%: verdeling met bredere ("vettere") staarten
    • Minder dan 5%: verdeling met smallere staarten
  • CVaR voor backtesting: vangt staart beter dan VaR

Afbeelding van verliezen en 95% VaR-drempel

Kwantitatief risicobeheer in Python

Laten we oefenen!

Kwantitatief risicobeheer in Python

Preparing Video For Download...