Risico-exposure en verlies

Kwantitatief risicobeheer in Python

Jamsheed Shorish

Computational Economist

Een vakantie-analogie

  • Hotelreserveringen voor vakantie

  • Vooraf betalen, vóór verblijf

    • Lage kamerprijs
    • Niet-restitueerbaar: annuleringskosten = 100% van kamerprijs
  • Betalen na aankomst

    • Hoge kamerprijs
    • Gedeeltelijk restitueerbaar: 20% annuleringskosten van kamerprijs

Afbeelding van een boot bij een Caraïbisch strand

Kwantitatief risicobeheer in Python

Kiezen tussen opties

  • Wat bepaalt je keuze?
    1. Kans op negatieve schok: ziekte, reisproblemen, weer
      • Kans op verlies
    2. Verlies bij schok: bedrag of voorwaardelijk bedrag
      • bijv. VaR, CVaR
    3. Wil om schok te vermijden: persoonlijke voorkeur
      • Risicotolerantie

Cartoon van drie zieke kinderen in bed met thermometers

 

Afbeelding van risicoschaal en geld voor risicobeheer

Kwantitatief risicobeheer in Python

Risico-exposure en VaR

  • Risico-exposure: kans op verlies x verliesmaat
    • Verliesmaat: bijv. VaR
  • 10% kans op annuleren vakantie: P(ziekte) = 0,10
  • Niet-restitueerbaar:
    • Totaal niet-restitueerbare hotelkosten: € 500
    • VaR bij 90% betrouwbaarheidsniveau: € 500
  • Gedeeltelijk restitueerbaar:
    • Restitueerbare hotelkosten: € 550
    • VaR bij 90% betrouwbaarheidsniveau: 20% annuleringskosten x € 550 = € 110
Kwantitatief risicobeheer in Python

Risico-exposure berekenen

  • Niet-restitueerbare exposure ("$\text{nr}$"):
    • P(ziekte) x $\text{VaR}_{0.90}^{\text{nr}}$ = 0,10 x € 500 = € 50.
  • Gedeeltelijk restitueerbare exposure ("$\text{pr}$"):
    • P(ziekte) x $\text{VaR}_{0.90}^{\text{pr}}$ = 0,10 x € 110 = € 11.
  • Verschil in risico-exposure: € 50 - € 11 = € 39.
  • Totaal prijsverschil tussen aanbiedingen: € 550 - € 500 = € 50.
  • Risicotolerantie: is € 50 extra betalen het waard om € 39 extra exposure te vermijden?
Kwantitatief risicobeheer in Python

Risicotolerantie en risk appetite

  • Risiconeutraal: alleen verwachtingswaarden tellen
    • € 39 < € 50 $\Rightarrow$ geef voorkeur aan niet-restitueerbaar
  • Risicomijdend: onzekerheid heeft zelf een kostenpost
    • € 39 < € 50 $\Rightarrow$ geef voorkeur aan gedeeltelijk restitueerbaar
  • Enterprise/institutioneel risicobeheer: voorkeuren als risk appetite
  • Particuliere beleggers: voorkeuren als risk tolerance
Kwantitatief risicobeheer in Python

Verliesverdeling - discreet

  • Risico-exposure hangt af van verliesverdeling (kans op verlies)
  • Vakantievoorbeeld: 2 uitkomsten door willekeurige risicofactor

Staafdiagram van binaire verliezen uit vakantievoorbeeld

Kwantitatief risicobeheer in Python

Verliesverdeling - continu

  • Risico-exposure hangt af van verliesverdeling (kans op verlies)
  • Vakantievoorbeeld: 2 uitkomsten door willekeurige risicofactor
  • Algemeen: continue verliesverdeling
    • Normale verdeling: goed bij grote steekproeven

Afbeelding van continue normale verdeling

Kwantitatief risicobeheer in Python

Verliesverdeling - continu

  • Risico-exposure hangt af van verliesverdeling (kans op verlies)
  • Vakantievoorbeeld: 2 uitkomsten door willekeurige risicofactor
  • Algemeen: continue verliesverdeling
    • Normale verdeling: goed bij grote steekproeven
    • Student-t-verdeling: goed bij kleine steekproeven

Afbeelding van continue T-verdeling voor verliezen

Kwantitatief risicobeheer in Python

Basis: Student-t-verdeling

  • Ook wel T-verdeling genoemd
  • Heeft dikkere staarten dan Normaal bij kleine steekproeven
    • Lijkt op portefeuille-rendementen/-verliezen
  • Bij grotere steekproeven convergeert T naar de normale verdeling

Afbeelding van continue verliesverdeling

Kwantitatief risicobeheer in Python

T-verdeling in Python

  • Voorbeeld: bereken 95% VaR uit T-verdeling
    • Importeer t uit scipy.stats
    • Fit portfolio_loss-data met t.fit()

 

from scipy.stats import t

params = t.fit(portfolio_losses)

Afbeelding van continue verliesverdeling

Kwantitatief risicobeheer in Python

T-verdeling in Python

  • Voorbeeld: bereken 95% VaR uit T-verdeling
    • Importeer t uit scipy.stats
    • Fit portfolio_loss-data met t.fit()
    • Bereken percent point function met .ppf() om VaR te vinden
from scipy.stats import t

params = t.fit(portfolio_losses)
VaR_95 = t.ppf(0.95, *params)

Afbeelding van continue T-verdeling met VaR

Kwantitatief risicobeheer in Python

Vrijheidsgraden

  • Vrijheidsgraden (df): aantal onafhankelijke observaties
  • Kleine df: T-verdeling met dikke staarten
  • Grote df: normale verdeling
x = np.linspace(-3, 3, 100)

plt.plot(x, t.pdf(x, df = 2))
plt.plot(x, t.pdf(x, df = 5))
plt.plot(x, t.pdf(x, df = 30))

Afbeelding van T-verdeling voor 30 vrijheidsgraden

Kwantitatief risicobeheer in Python

Laten we oefenen!

Kwantitatief risicobeheer in Python

Preparing Video For Download...