Riskexponering och förlust

Kvantitativ riskhantering i Python

Jamsheed Shorish

Computational Economist

En semesteranalogi

  • Hotellbokning för semester

  • Betala i förväg, innan ankomst

    • Lågt rumspris
    • Icke återbetalningsbar: avbokningsavgift = 100 % av rumspriset
  • Betala efter ankomst

    • Högt rumspris
    • Delvis återbetalningsbar: avbokningsavgift på 20 % av rumspriset

Bild på en båt nära en karibisk strand

Kvantitativ riskhantering i Python

Välja mellan alternativ

  • Vad avgör ditt val?
    1. Risk för negativ händelse: sjukdom, resestörning, väder
      • Förlustsannolikhet
    2. Förlust kopplad till händelsen: belopp eller villkorligt belopp
      • t.ex. VaR, CVaR
    3. Vilja att undvika händelsen: personlig känsla
      • Risktolerans

Tecknad bild av tre sjuka barn i sängen med termometrar i munnen

 

Bild på riskskala och pengar för riskhantering

Kvantitativ riskhantering i Python

Riskexponering och VaR

  • Riskexponering: förlustsannolikhet x förlustmått
    • Förlustmått: t.ex. VaR
  • 10 % chans att avboka semestern: P(Sjukdom) = 0,10
  • Icke återbetalningsbar:
    • Total icke återbetalningsbar hotelkostnad: € 500
    • VaR vid 90 % konfidensnivå: € 500
  • Delvis återbetalningsbar:
    • Återbetalningsbar hotelkostnad: € 550
    • VaR vid 90 % konfidensnivå: 20 % avbokningsavgift x € 550 = € 110
Kvantitativ riskhantering i Python

Beräkna riskexponering

  • Icke återbetalningsbar exponering ("$\text{nr}$"):
    • P(sjukdom) x $\text{VaR}_{0.90}^{\text{nr}}$ = 0,10 x € 500 = € 50.
  • Delvis återbetalningsbar exponering ("$\text{pr}$"):
    • P(sjukdom) x $\text{VaR}_{0.90}^{\text{pr}}$ = 0,10 x € 110 = € 11.
  • Skillnad i riskexponering: € 50 - € 11 = € 39.
  • Total prisskillnad mellan alternativen: € 550 - € 500 = € 50.
  • Risktolerans: är det värt att betala € 50 mer för att undvika € 39 i extra exponering?
Kvantitativ riskhantering i Python

Risktolerans och riskaptit

  • Riskneutral: bara förväntade värden spelar roll
    • € 39 < € 50 $\Rightarrow$ föredrar alternativet utan återbetalning
  • Riskavers: osäkerhet innebär en kostnad i sig
    • € 39 < € 50 $\Rightarrow$ föredrar alternativet med delvis återbetalning
  • Företags-/institutionell riskhantering: preferenser som riskaptit
  • Enskilda investerare: preferenser som risktolerans
Kvantitativ riskhantering i Python

Förlustfördelning – diskret

  • Riskexponering beror på förlustfördelningen (förlustsannolikheten)
  • Semesterexempel: 2 utfall från en slumpmässig riskfaktor

Stapeldiagram över binära förluster från semesterexemplet

Kvantitativ riskhantering i Python

Förlustfördelning – kontinuerlig

  • Riskexponering beror på förlustfördelningen (förlustsannolikheten)
  • Semesterexempel: 2 utfall från en slumpmässig riskfaktor
  • Mer generellt: kontinuerlig förlustfördelning
    • Normalfördelning: lämplig för stora urval

Bild på kontinuerlig normalfördelning

Kvantitativ riskhantering i Python

Förlustfördelning – kontinuerlig

  • Riskexponering beror på förlustfördelningen (förlustsannolikheten)
  • Semesterexempel: 2 utfall från en slumpmässig riskfaktor
  • Mer generellt: kontinuerlig förlustfördelning
    • Normalfördelning: lämplig för stora urval
    • Students t-fördelning: lämplig för mindre urval

Bild på kontinuerlig förlust-t-fördelning

Kvantitativ riskhantering i Python

Introduktion: Students t-fördelning

  • Kallas även T-fördelningen
  • Har "fetare" svansar än normalfördelningen vid små urval
    • Liknar portföljers avkastning och förluster
  • När urvalsstorleken ökar konvergerar T mot normalfördelningen

Bild på kontinuerlig förlustfördelning

Kvantitativ riskhantering i Python

T-fördelning i Python

  • Exempel: beräkna 95 % VaR från T-fördelningen
    • Importera t-fördelningen från scipy.stats
    • Anpassa portfolio_loss-data med t.fit()

 

from scipy.stats import t

params = t.fit(portfolio_losses)

Bild på kontinuerlig förlust-t-fördelning

Kvantitativ riskhantering i Python

T-fördelning i Python

  • Exempel: beräkna 95 % VaR från T-fördelningen
    • Importera t-fördelningen från scipy.stats
    • Anpassa portfolio_loss-data med t.fit()
    • Beräkna percentilpunktsfunktionen med .ppf() för att hitta VaR
from scipy.stats import t

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

Bild på kontinuerlig förlust-t-fördelning med VaR

Kvantitativ riskhantering i Python

Frihetsgrader

  • Frihetsgrader (df): antal oberoende observationer
  • Få frihetsgrader: "fetsvansad" T-fördelning
  • Många frihetsgrader: normalfördelning
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))

Bild på T-fördelning för 30 frihetsgrader

Kvantitativ riskhantering i Python

Nu kör vi en övning!

Kvantitativ riskhantering i Python

Preparing Video For Download...