Get startedGet started for free

GEV risk estimation

Suppose that you were holding € 1,000,000 of GE stock on January 1, 2010. You would like to cover the expected maximum losses that might occur over the next week, based upon available data from the previous two years, 2008 - 2009. You assume that maximum weekly losses for GE are distributed according to a Generalized Extreme Value (GEV) distribution.

To model expected losses you'll estimate the CVaR at the 99% confidence level for the GEV distribution, and use it to compute the amount needed in reserve to cover the expected maximum weekly loss over January, 2010.

The genextreme distribution from scipy.stats is available in your workspace, as is GE's losses for the 2008 - 2009 period.

This exercise is part of the course

Quantitative Risk Management in Python

View Course

Exercise instructions

  • Find the maxima of GE's asset price for a one week block length.
  • Fit the GEV distribution genextreme to the weekly_maxima data.
  • Compute the 99% VaR, and use it to find the 99% CVaR estimate.
  • Compute the reserve amount needed to cover the expected maximum weekly loss.

Hands-on interactive exercise

Have a go at this exercise by completing this sample code.

# Compute the weekly block maxima for GE's stock
weekly_maxima = losses.____("W").____()

# Fit the GEV distribution to the maxima
p = genextreme.____(____)

# Compute the 99% VaR (needed for the CVaR computation)
VaR_99 = genextreme.____(____, *p)

# Compute the 99% CVaR estimate
CVaR_99 = (1 / (1 - 0.99)) * genextreme.____(lambda x: x, 
           args=(p[0],), loc = p[1], scale = p[2], lb = ____)

# Display the covering loss amount
print("Reserve amount: ", 1000000 * CVaR_99)
Edit and Run Code