Kom igångKom igång gratis

Beräkna VaR och ES för normalfördelningen

Standardfunktionen qnorm() beräknar kvantiler för en normalfördelning utifrån sannolikheten p, medelvärdet och standardavvikelsen, och kan därmed användas för att beräkna value-at-risk (VaR). Funktionen ESnorm() från paketet QRM beräknar expected shortfall (ES) för en normalfördelning utifrån sannolikheten p, lägesparametern mu och skalparametern sd:

qnorm(p, mean = 0, sd = 1)
ESnorm(p, mu = 0, sd = 1)

Vanliga numeriska värden för p är 0,95 och 0,99, vilket motsvarar konfidensnivåerna 95% respektive 99%.

I den här övningen beräknar och visualiserar du VaR och ES för en normalfördelning \(N(\mu, \sigma^2)\) med medelvärde \(\mu\) och standardavvikelse \(\sigma\). Du kommer också att använda nya funktioner för att generera sekvenser och lägga till lodräta linjer i ett diagram. Du kan läsa om deras argument genom att skriva ?seq och ?abline i konsolen.

Variablerna mu och sigma innehåller det skattade medelvärdet och den skattade standardavvikelsen för Dow Jones-indexets avkastningar under 2008–2009, lagrade i djx. Alla tre objekt finns tillgängliga i din workspace.

Den här övningen är en del av kursen

Kvantitativ riskhantering i R

Visa kurs

Övningsinstruktioner

  • Fyll i seq() för att skapa en sekvens med 100 x-värden från \(-4\sigma\) till \(4\sigma\) och tilldela till xvals.
  • Fyll i dnorm() för att beräkna tätheten för en \(N(\mu, \sigma^2)\)-fördelning vid xvals och tilldela till ndens.
  • Plotta ndens mot xvals med type = "l".
  • Använd qnorm() och ESnorm() för att beräkna fördelningens 99% VaR och 99% ES, och tilldela resultaten till VaR99 respektive ES99.
  • Fyll i abline() för att skapa lodräta linjer för VaR99 och ES99 i rött respektive grönt.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Make a sequence of 100 x-values going from -4*sigma to 4*sigma
___ <- seq(from = -4*sigma, to = 4*sigma, length.out = ___)

# Compute the density of a N(mu, sigma^2) distribution at xvals
___ <- dnorm(___, mean = ___, sd = ___)

# Plot ndens against xvals


# Compute the 99% VaR and 99% ES of a N(mu, sigma^2) distribution
___ <- qnorm(___, mean = ___, sd = ___)
___ <- ESnorm(___, mu = ___, sd = ___)

# Draw vertical lines at VaR99 and ES99 in red and green
abline(v = ___, col = "red")
abline(v = ___, col = "green")
Redigera och kör kod