Sådan beregner du Conditional Value-at-Risk (CVaR)

Når markedet pludselig skifter gear – som vi så under COVID-19-krakket og igen, da energi-priserne eksploderede – opdager mange investorer, at deres foretrukne risikomål Value-at-Risk (VaR) ikke fortæller hele historien. Hvor stort bliver tabet, når uheldet virkelig er ude, og kurverne fortsætter ned under VaR-grænsen?

Svaret finder du i Conditional Value-at-Risk (CVaR), også kendt som Expected Shortfall. CVaR zoomer ind på hale-scenarierne og måler det gennemsnitlige tab, du kan forvente, efter VaR-barrieren er brudt – præcis den type tal, der får risikochefer, regulatorer og professionelle porteføljeforvaltere til at sove (lidt) roligere om natten.

I denne artikel viser FCE Invest dig trin for trin, hvordan du:

  • forstår forskellen mellem VaR og CVaR – og hvorfor CVaR ofte er det mere robuste mål,
  • vælger den rigtige metode til at beregne CVaR (historisk, parametrisk eller via Monte Carlo),
  • implementerer beregningen i praksis – hvad enten du er til Excel eller Python – og undgår de klassiske faldgruber.

Er du klar til at kigge dybere ned i risikohalen og få et mere nuanceret billede af dine porteføljers sårbarhed? Så læs videre – næste stop er en komplet guide til, hvordan du selv beregner Conditional Value-at-Risk og omsætter indsigten til bedre investeringsbeslutninger.

Hvad er CVaR, og hvorfor er det vigtigt?

Conditional Value-at-Risk (CVaR), også kendt som Expected Shortfall, er et risikomål, der kvantificerer det gennemsnitlige tab i den værste del af tabfordelingen. Hvor Value-at-Risk (VaR) ved et 95 %-niveau kun fortæller, at du med 95 % sandsynlighed ikke vil tabe mere end fx 1 mio. kr. på én dag, spørger CVaR: “Hvis det går værre end 1 mio. kr., hvor slemt bliver det så i gennemsnit?”

Formelt kan CVaR ved konfidensniveauet α %= 95 % skrives som:

CVaRα = E[Tab | Tab > VaRα]

Sammenligning mellem var og cvar

  • Information indbygget: VaR er et enkelt percentil; CVaR bruger hele haleområdet og indfanger derfor, hvor “fed” halen er.
  • Robusthed over for ekstreme hændelser: CVaR straffer store tab kraftigere og er sub-additivt, hvilket gør det til et coherent risikomål i modsætning til VaR.
  • Regulatorisk anvendelse: Basel III erstatter 99 %-VaR med 97,5 %-CVaR til markedsrisiko; Solvency II og flere pensionskasser bruger også Expected Shortfall.

Hvorfor vælger praktikere cvar?

  • Investorer: Porteføljeoptimering under downside-restriktioner (minimer CVaR givet forventet afkast).
  • Risikochefer: Fastlæggelse af limits for trading-desks og stresstest af illikvide porteføljer.
  • Regulatorer og tilsyn: Sætter kapitalkrav baseret på tail-risiko for at dæmpe systemiske chok.

Fordele ved cvar

  • Fanger både frekvens og alvor af ekstreme tab.
  • Er sub-additivt og dermed velegnet til porteføljekonsolidering.
  • Nemt at kombinere med optimeringsalgoritmer og scenarieanalyser.

Begrænsninger

  • Afhængig af historiske eller modellerede haler; fejl i fordelingsantagelser forstørres.
  • Kræver flere observationer i halen end VaR for at være præcis, hvilket kan være vanskeligt ved høje konfidensniveauer (99 %).
  • Backtesting er mere kompleks end for VaR, da man ikke kun tæller antallet af overskridelser.

Centrale begreber, du skal kende

  • Tidshorisont: Dags-, uge- eller måned-CVaR; afhænger af porteføljens likviditet og styringsbehov.
  • Tabsfordeling: Normal, t-fordeling, ekstrem-value-teori eller simpel historisk sampling – valget påvirker haleestimatet signifikant.
  • Alfa-niveau (α): De mest brugte er 95 % og 99 % (Basel benytter 97,5 %). Jo højere α, desto længere ud i halen måler du, og desto færre datapunkter har du.

Alt i alt giver CVaR et mere komplet billede af potentielle ekstreme tab end VaR alene – men kun hvis du er bevidst om data­­kvalitet, model­­antagelser og tidshorisonten for din risiko­­styring.

Metoder til at beregne CVaR

Inden du kaster dig over selve CVaR-beregningen, er det afgørende at få styr på de grundlæggende byggesten: hvilke data du bruger, hvor lange og hvor hyppige de er, samt hvilket konfidensniveau (α) der passer til din risikoprofil.

Datagrundlag

  • Afkast eller P&L: Arbejd enten med procentuelle dagsafkast eller faktiske P&L-tal i kroner. Vigtigst er konsistens.
  • Frekvens: Daglige data er mest udbredt, men time- eller ugentlige observationer kan være relevante for kort- eller langsigtede strategier.
  • Tidsvindue: Ofte 250-1.000 handelsdage. Et for kort vindue fanger ikke ekstreme hændelser; et for langt vindue kan udvande nyere regime-skift.

Valg af konfidensniveau (α)

Typisk anvendes 95 % eller 99 %. Jo højere konfidensniveau, desto dybere graver du ned i tabshalen – og jo færre observationer har du til at estimere gennemsnittet, hvilket øger usikkerheden.

Tre hovedtilgange til cvar

  1. Historisk simulering (non-parametrisk)
    • Sorter de empiriske afkast fra lavest til højest.
    • Find VaR som percentilen (1-α). Ved 99 % er det det 1. tabigste centil.
    • Beregn CVaR som gennemsnittet af alle observationer værre end VaR.
    • Fordele: Ingen fordelingsantagelser, fanger faktiske asymmetrier og hale-tykkelse.
    • Ulemper: Afhængig af at fortiden gentager sig; få datapunkter i halen kan gøre skønnet ustabilt.
  2. Parametrisk metode
    • Antag en fordeling (oftest normal eller t-fordeling). Estimér middelværdi, volatilitet og evt. frihedsgrader.
    • Udregn VaR analytisk: VaR = μ + σ · zα, hvor zα er quantilen for den valgte fordeling.
    • CVaR beregnes som: For normal fordeling: CVaR = μ – σ · (φ(zα)/(1-α))
      hvor φ er tæthedsfunktionen til N(0,1).
    • Fordele: Meget hurtigt og let at implementere.
    • Ulemper: Fejl, hvis de faktiske afkast har fede haler eller skævhed.
  3. Monte Carlo simulering
    • Opstil en stochastisk model (f.eks. GARCH, korrelerede Geometriske Brownian Motions, copula-baseret afhængighed).
    • Generér et stort antal scenarier (10.000-1.000.000) og udregn porteføljens P&L i hvert scenarie.
    • Sorter de simulerede tab, find VaR, og beregn CVaR som i historisk simulering.
    • Fordele: Kan håndtere ikke-lineære instrumenter, path-dependence og komplekse afhængigheder.
    • Ulemper: Beregningstungt og følsomt over for modelantagelser.

Trinvis ramme – Fra var til cvar

  1. Fastlæg α, tidsvindue og datasæt.
  2. Beregn VaR på (1-α)-percentilen.
  3. Identificér alle observationer (eller simulerede tab) <= -VaR.
  4. Tag gennemsnittet af disse hale-tab. Resultatet er CVaR (Expected Shortfall).

Praktiske overvejelser

  • Hale-tykkelse & asymmetri: Equity-afkast er ofte venstreskæve og fedhalede; vælg model derefter.
  • Afhængighed & serial korrelation: Indbyg evt. ARMA/GARCH eller copulaer for at undgå undervurderet risiko.
  • Fra positioner til P&L: For lineære aktiver P&L ≈ ΔS · antal. For optioner kræves gen-prissætning i hvert scenarie.
  • Likviditet og stale prices: Rens for kunstigt lave udsving, ellers undervurderes halen.
  • Transaktionsomkostninger: Inkludér spreads og kommission, især ved short-halestrategier.

Sammenfattende giver de tre tilgange dig en værktøjskasse til at matche dine datamæssige muligheder, porteføljens kompleksitet og din ønskede præcision. Det vigtigste er at teste antagelserne løbende og være opmærksom på, at CVaR – ligesom alle risikomål – er et skøn, ikke en garanti.

Praktisk beregning, implementering og faldgruber

1. Datagrundlag og forberedelse

  1. Datakilder: Download lukkekurser fra fx Yahoo Finance, Bloomberg, eller din broker-API. Gem som CSV eller træk direkte ind i Python via pandas_datareader.
  2. Rensning:
    • Fjern helligdage og dubletter.
    • Interpolér eller sæt NaN til stale prices fra illikvide aktiver.
    • Screen for outliers (fx afkast > ±5 σ). Behold dem, men forstå årsagen – de kan være bærere af haleinformation.
  3. Frekvens & tidsvindue: Mest brugt er daglige afkast med et 1-3 års rullende vindue (≈250-750 observationer). Jo længere vindue, desto mere stabilitet – men risiko for regimeskift.
  4. Vægtning: Konstruér portefølje-P&L som P&L_t = w' · r_t · V_0, hvor w er vægtene og V_0 den aktuelle markedsværdi.

2. Step-by-step beregning i excel

  1. Beregn logafkast =LN(Close_t / Close_{t-1}).
  2. Sorter afkast i stigende orden.
  3. Find VaR på α-niveau (fx 5 %): percentil(afkast; 5 %).
  4. Filtrér alle afkast <= VaR og beregn gennemsnittet – dette er CVaR.
  5. Skalér til kr.: CVaR_% × porteføljeværdi.
  6. Annualisér om ønsket: CVaR_år = CVaR_dag × √252 (kun gyldigt ved fravær af autokorrelation).

3. Hurtig python-implementering

import pandas as pdimport numpy as npimport pandas_datareader.data as webtickers = ['AAPL', 'MSFT']prices = web.DataReader(tickers, 'yahoo', '2021-01-01')['Adj Close']returns = np.log(prices / prices.shift(1)).dropna()weights = np.array([0.6, 0.4])port_ret = returns.dot(weights)alpha = 0.05 # 95 % konfidensVaR = np.quantile(port_ret, alpha)CVaR = port_ret[port_ret <= VaR].mean()print(f"1-dags VaR (95 %): {VaR:.4%}")print(f"1-dags CVaR (95 %): {CVaR:.4%}")

4. Validering & backtesting

  • Hit-rate test (Kupiec): Tjek om andelen af faktiske tab der overskrider VaR ≈ α.
  • Christoffersen test: Ser på både antal og klumper af overskridelser (autokorrelation).
  • Backtest af CVaR: Sammenlign observeret gennemsnitstab, når VaR brydes, med estimeret CVaR.

5. Scenarie- og stresstests

Komplementér de statistiske mål med historiske scenarier (fx 2008 eller marts 2020) og fremadrettede shocks (renter +300 bp, olie −30 %, etc.). CVaR kan genberegnes under hvert scenarie for at afdække porteføljens haleeksponering.

6. Estimeringsusikkerhed

CVaR er selv et estimat. Brug bootstrap (resampling af afkast 1 000-10 000 gange) for at få et 95 % konfidensinterval:

boot_cvar = []for _ in range(5000): sample = port_ret.sample(frac=1, replace=True) VaR_s = np.quantile(sample, alpha) boot_cvar.append(sample[sample <= VaR_s].mean())ci_low, ci_high = np.percentile(boot_cvar, [2.5, 97.5])print(f"CVaR 95 % CI: [{ci_low:.4%}, {ci_high:.4%}]")

7. Rapportering & fortolkning

Mål 1-dags (%) 1-dags (DKK) 95 % CI (%)
VaR -2,1 -210 000
CVaR -3,4 -340 000 [-3,0; ‑3,9]

Beskriv, hvad tab på “gennemsnitligt 340 000 kr. eller mere én gang ud af 20 dage” betyder for porteføljens likviditet og kapitalallokering.

8. Typiske faldgruber

  • For korte dataserier: Giver ustabil CVaR; suppler med inddragelse af krisescenarier.
  • Regimeskift: Ændrede volatilitet-/korrelationsstrukturer slører fremtidig risiko.
  • Illikviditet & stale prices: Undervurderer hale-risikoen; brug bid/ask-mid eller modellér likviditets-haircuts.
  • Urimelige fordelingsantagelser: Normalfordeling glatter halen; overvej t-fordeling eller EVT.
  • Transaktionsomkostninger: Indregn trading-fees og market impact, især i stressede markeder.
  • Ikke-lineære payoff: Optioner kræver delta-gamma-vektor eller simulering i det underliggende.

Ved at kombinere en disciplineret beregningsprocedure med kontinuerlig validering og bevidsthed om faldgruber får investoren et mere pålideligt mål for porteføljens hale-risiko gennem CVaR.

Indhold

Type above and press Enter to search. Press Esc to cancel.