Computing VaR and ES for normal distribution
The standard function qnorm()
calculates quantiles of a normal distribution from the probability p
, the mean, and standard deviation, and thus can be used to calculate value-at-risk (VaR). The function ESnorm()
from the QRM package calculates the expected shortfall (ES) for a normal distribution from the probability p
, location parameter mu
, and scale parameter sd
:
qnorm(p, mean = 0, sd = 1)
ESnorm(p, mu = 0, sd = 1)
Common numeric values for p
include 0.95 and 0.99 for confidence levels of 95% and 99%, respectively.
In this exercise, you will compute and display VaR and ES for a normal distribution \(N(\mu, \sigma^2)\) with mean \(\mu\) and standard deviation \(\sigma\). In the process, you will use the new functions for sequence generation and adding straight lines to a plot. You can read about their arguments by typing in ?seq
and ?abline
to your console.
The variables mu
and sigma
contain the estimated mean and standard deviation of the Dow Jones index returns for 2008-2009 contained in djx
. All three objects are available in your workspace.
This is a part of the course
“Quantitative Risk Management in R”
Exercise instructions
- Fill in
seq()
to make a sequence of 100 x-values going from \(-4\sigma\) to \(4\sigma\) and assign toxvals
. - Fill in
dnorm()
to compute the density of a \(N(\mu, \sigma^2)\) distribution atxvals
and assign tondens
. - Plot
ndens
againstxvals
usingtype = "l"
. - Use
qnorm()
andESnorm()
to compute the 99% VaR and 99% ES of the distribution and assign toVaR99
andES99
, respectively. - Fill in
abline()
to create vertical lines forVaR99
andES99
in red and green, respectively.
Hands-on interactive exercise
Have a go at this exercise by completing this sample code.
# 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")
This exercise is part of the course
Quantitative Risk Management in R
Work with risk-factor return series, study their empirical properties, and make estimates of value-at-risk.
In this chapter, the concept of value-at-risk and simple methods of estimating VaR based on historical simulation are introduced.
Exercise 1: Value-at-risk and expected shortfallExercise 2: Computing VaR and ES for normal distributionExercise 3: International equity portfolioExercise 4: Examining risk factors for international equity portfolioExercise 5: Historical simulationExercise 6: Estimating VaR and ESExercise 7: Option portfolio and Black ScholesExercise 8: Compute Black-Scholes price of an optionExercise 9: Equity and implied volatility risk factorsExercise 10: Historical simulation for the option exampleExercise 11: Historical simulation of losses for option portfolioExercise 12: Estimating VaR and ES for option portfolioExercise 13: Computing VaR for weekly lossesExercise 14: Wrap-upWhat is DataCamp?
Learn the data skills you need online at your own pace—from non-coding essentials to data science and machine learning.