Skip to content

Extreme Value Theory: From the Fisher-Tippett Theorem to GPD

Sums belong to the central limit theorem; maxima belong to Fisher-Tippett-Gnedenko. From the three limit laws to the GEV, from block maxima to peaks-over-threshold, from the GPD to return levels — with the shape parameter ξ as the one conserved quantity throughout.

6 of 12 ~13 min

There is a graph every risk manager eventually rediscovers by hand. Take ten years of daily S&P 500 returns, draw the histogram, look at the tail: it does not look Gaussian. There is far too much mass at three, four, five standard deviations — out where the Gaussian says “once in ten thousand years” or “once in a hundred thousand,” you can count an observation every three years or so.

When the data violates the model, the data is right. The Gaussian tail decays like e−x2/2e^{-x^2/2} — faster than exponential — while financial returns empirically carry power-law tails, decaying roughly like x−1−αx^{-1-\alpha} with α∈(2,5)\alpha \in (2, 5). That is not a gap you can close by tuning parameters: a power-law tail is fatter than a Gaussian one by orders of magnitude, and no calibration of “scale” catches up.

So what model does the tail get? That is the question extreme value theory answers, and it answers in an unusual way: not by proposing a model for you to test, but by handing you a theorem stating that the limit law of a sample maximum must belong to one of three families — just as the central limit theorem says a normalized sample sum must converge to a normal. Sums belong to the CLT; maxima belong to Fisher–Tippett–Gnedenko. Empirically, financial losses land in the Fréchet family of the three, and the corresponding working model for the tail is the Generalized Pareto Distribution (GPD). This article walks the full chain of that derivation. Along the way, keep your eye on one quantity: the shape parameter ξ\xi. It shows up at every station, and at every station it is the same ξ\xi — that conservation is the reason the whole theory is usable.

The Fisher-Tippett-Gnedenko Theorem

Let X1,X2,…,XnX_1, X_2, \ldots, X_n be iid samples from a distribution FF with right endpoint x∗=sup⁡{x:F(x)<1}x^* = \sup\{x : F(x) < 1\}, and let Mn=max⁡(X1,…,Xn)M_n = \max(X_1, \ldots, X_n). The CDF of the maximum writes itself:

P(Mn≤x)=F(x)nP(M_n \le x) = F(x)^n

The question is what F(x)nF(x)^n converges to as n→∞n \to \infty. Pointwise, the answer is degenerate: for any fixed x<x∗x < x^*, F(x)n→0F(x)^n \to 0 — the same problem an unnormalized sample sum has. So the real question is about the rescaled limit. The Fisher–Tippett–Gnedenko (FTG) theorem (Embrechts, Klüppelberg & Mikosch, 1997, Thm. 3.2.3) says: if there exist normalizing constants an>0a_n > 0 and bnb_n such that

Mn−bnan→dG\frac{M_n - b_n}{a_n} \xrightarrow{d} G

with GG non-degenerate (not a point mass), then GG must belong to one of three parametric families — there is no fourth option. The three unify into the Generalized Extreme Value (GEV) distribution:

Gξ(x)=exp⁡{−(1+ξx−μσ)−1/ξ},1+ξx−μσ>0G_{\xi}(x) = \exp\left\{-\left(1 + \xi \frac{x - \mu}{\sigma}\right)^{-1/\xi}\right\}, \quad 1 + \xi \frac{x - \mu}{\sigma} > 0

with location μ∈R\mu \in \mathbb{R}, scale σ>0\sigma > 0, and shape ξ∈R\xi \in \mathbb{R}. The entire trichotomy lives in the sign of ξ\xi: for ξ>0\xi > 0 you get the Fréchet type (Type II), heavy power-law tail, the home of financial losses; for ξ=0\xi = 0 the Gumbel type (Type I), exponential-class tail, where the maxima of normal, exponential, and lognormal samples all converge; for ξ<0\xi < 0 the Weibull type (Type III), bounded above, appropriate for quantities pinned by physics (wave heights in a bounded sea state, say). One representative example each: maxima of exponentials go to Gumbel, maxima of Cauchy samples go to Fréchet, maxima of uniform(0,1) samples go to Weibull.

The history in one sentence: Fréchet (1927) found the heavy-tailed class first, Fisher & Tippett (1928) listed all three types, Gnedenko (1943) supplied the rigorous necessary-and-sufficient conditions, the unified one-parameter GEV form is due to Jenkinson (1955), and McNeil, Frey & Embrechts (2015, §5) made this the standard language of financial risk.

The Shape Parameter ξ\xi Is Everything

Calling ξ\xi a “shape” parameter undersells it — it decides which world your tail lives in. Look at the GEV’s right tail. For ξ>0\xi > 0:

Gˉξ(x)=1−Gξ(x)∼x−1/ξas x→∞\bar{G}_\xi(x) = 1 - G_\xi(x) \sim x^{-1/\xi} \quad \text{as } x \to \infty

Power-law decay with exponent 1/ξ1/\xi: ξ=1/2\xi = 1/2 gives an x−2x^{-2} tail, ξ=0.2\xi = 0.2 gives x−5x^{-5}. The exponent is conventionally written as the tail index α=1/ξ\alpha = 1/\xi. For ξ=0\xi = 0 (Gumbel type), the tail beats every power law:

Gˉ0(x)=1−exp⁡(−e−x)∼e−xas x→∞\bar{G}_0(x) = 1 - \exp(-e^{-x}) \sim e^{-x} \quad \text{as } x \to \infty

And for ξ<0\xi < 0 (Weibull type) the right endpoint is simply finite, x∗=μ−σ/ξx^* = \mu - \sigma/\xi, with zero probability beyond it. The differences between the three worlds are of kind, not degree — which moments exist, and how extreme quantiles grow with the confidence level, are entirely governed by the sign and size of ξ\xi. The empirical verdict for finance sits in the first world: daily equity returns fit ξ\xi roughly in the 0.2–0.4 range, tail indices of 2.5–5, consistent with the stylized facts surveyed by Cont (2001) (the specific number drifts with sample period and market).

Block Maxima: The Theorem Applied Directly

FTG is a statement about maxima, so the most literal method manufactures a collection of maxima and fits them — the block maxima (BM) method (Coles, 2001, §3). Cut the data into kk non-overlapping blocks of mm observations each (21 trading days per block for monthly blocks, say), take each block’s maximum Mj=max⁡(X(j−1)m+1,…,Xjm)M_j = \max(X_{(j-1)m+1}, \ldots, X_{jm}), and fit the GEV to the kk block maxima by maximum likelihood.

The block size defines what “extreme” means: with monthly blocks you are modeling the monthly maximum loss; with annual blocks, the annual maximum. Choosing the size is a bias–variance tradeoff — larger blocks bring F(x)mF(x)^m closer to the GEV limit (less bias) but yield fewer maxima kk (more variance); smaller blocks reverse both (McNeil, Frey & Embrechts, 2015, §5.2). Ten years of daily data at 252 trading days per year: monthly blocks give k=120k = 120 maxima, quarterly only k=40k = 40. Most empirical studies take monthly blocks to clear a hundred observations.

The fit itself is standard MLE. With zi=(Mi−μ)/σz_i = (M_i - \mu)/\sigma and ξ≠0\xi \ne 0, the log-likelihood is

ℓ(μ,σ,ξ)=−klog⁡σ−(1+1ξ)∑i=1klog⁡(1+ξzi)−∑i=1k(1+ξzi)−1/ξ\ell(\mu, \sigma, \xi) = -k \log \sigma - \left(1 + \frac{1}{\xi}\right) \sum_{i=1}^k \log\left(1 + \xi z_i\right) - \sum_{i=1}^k \left(1 + \xi z_i\right)^{-1/\xi}

with the continuous limiting form as ξ→0\xi \to 0, and standard errors from the inverse observed Fisher information. Nothing wrong with the method — the problem is its appetite.

Peaks-Over-Threshold: Stop Throwing Away 95% of the Tail

BM has a structural waste problem: with monthly blocks, 20 of every 21 observations are discarded — even when a month’s second-largest loss exceeds another month’s maximum, out it goes. Studying the tail while discarding most tail observations is hard to defend. The Peaks-Over-Threshold (POT) method instead keeps every observation above a threshold and models the excesses directly; it is more statistically efficient and is the mainstream choice in modern risk management (McNeil, Frey & Embrechts, 2015, §5.3).

Pick a threshold uu high enough that exceedances are rare. For the indices with Xi>uX_i > u, define the excesses Yi=Xi−uY_i = X_i - u; there are NuN_u of them. The Pickands–Balkema–de Haan theorem (Balkema & de Haan, 1974; Pickands, 1975) says that as uu approaches the right endpoint x∗x^*, the conditional distribution of the excesses tends to a universal form:

Pr⁡(Y≤y∣X>u)≈Gξ,σu(y)=1−(1+ξyσu)−1/ξ\Pr(Y \le y \mid X > u) \approx G_{\xi, \sigma_u}(y) = 1 - \left(1 + \xi \frac{y}{\sigma_u}\right)^{-1/\xi}

for y>0y > 0 and 1+ξy/σu>01 + \xi y/\sigma_u > 0. This is the Generalized Pareto Distribution. Note the asymmetric treatment of the two parameters: the scale σu\sigma_u carries a subscript and depends on the threshold; the shape ξ\xi carries none — it is the same ξ\xi from the FTG theorem, shared between the BM fit and the POT fit of the same parent distribution. The conserved quantity, again.

Why the GPD and GEV Share ξ\xi

The conservation deserves a derivation, because it simultaneously yields the principle behind threshold diagnostics. Applying FTG to the upper tail of FF, the limit of the excess distribution is

P(X−u≤y∣X>u)→Gξ,σu(y)P(X - u \le y \mid X > u) \to G_{\xi, \sigma_u}(y)

with the same ξ\xi that appears in the block-maxima GEV, and only the scale tracking the threshold. Moreover the dependence of σu\sigma_u on uu is exactly linear: for a tail of GEV shape ξ\xi,

σu=σ+ξ(u−μ)\sigma_u = \sigma + \xi(u - \mu)

where σ,μ\sigma, \mu are the GEV scale and location. Read it in all three regimes: at ξ=0\xi = 0, σu=σ\sigma_u = \sigma is constant — the memorylessness of the exponential tail; for ξ>0\xi > 0, σu\sigma_u grows linearly with uu — the higher the threshold, the wider the tail beyond it, the signature behavior of heavy tails; for ξ<0\xi < 0, σu\sigma_u shrinks linearly and hits zero at u=x∗u = x^* — a bounded distribution’s tail throttled by its endpoint. Run it in reverse for diagnostics: fit GPDs across a range of thresholds, and if ξ^\hat\xi is stable while σ^u\hat\sigma_u moves linearly, you have effectively identified the parent’s GEV upper tail.

Choosing the Threshold: POT’s One Piece of Craft

POT trades BM’s “choose the block size” for “choose the threshold uu,” and the tradeoff has the same two horns: too low a uu contaminates the fit with non-tail data (bias); too high leaves too few exceedances (variance). Practice leans on three mutually reinforcing diagnostics. The first is the mean excess plot: for a GPD with ξ<1\xi < 1, the mean excess function e(u)=E[X−u∣X>u]e(u) = \mathbb{E}[X - u \mid X > u] is linear in uu with slope ξ/(1−ξ)\xi/(1-\xi), so plot the empirical e(u)e(u) and look for where it straightens out — the start of the linear range is your candidate threshold, and the slope hands you an initial read on ξ\xi. The second is shape stability: fit ξ^\hat\xi over a ladder of thresholds and take the smallest uu above which ξ^\hat\xi roughly stops moving — the linearity result of the previous section says this is what the asymptotic regime should look like (Coles, 2001, §4.3). The third is the cheap starting point: take the 90th–95th percentile of the data as uu, then let the first two diagnostics vet it. None of the three is automatic; that is POT’s irreducible element of craft.

The routine setup in finance runs POT on the loss side (negated returns), with the threshold near the 90th percentile of the loss distribution; on S&P daily returns the fitted ξ^\hat\xi typically lands in the 0.2–0.4 range — matching the BM-side empirical values quoted earlier, exactly as a shared ξ\xi should.

Return Levels: Turning ξ\xi Into a Number That Goes in a Report

With parameters estimated, EVT’s most common deliverable is the return level: the loss level expected to be exceeded once every TT observations. For a BM-fitted GEV, the TT-observation return level zTz_T solves a quantile equation directly:

G(zT)=1−1/T  ⟺  zT=μ+σξ[(−log⁡(1−1/T))−ξ−1]G(z_T) = 1 - 1/T \quad \iff \quad z_T = \mu + \frac{\sigma}{\xi}\left[\left(-\log(1 - 1/T)\right)^{-\xi} - 1\right]

For a POT-fitted GPD, chain together the two layers of probability — exceeding the threshold, then exceeding zTz_T given that. With ζu=P(X>u)\zeta_u = P(X > u) the exceedance probability,

Pr⁡(X>zT)=1/T  ⟺  Pr⁡(X>u)⋅Pr⁡(X−u>zT−u∣X>u)=1/T\Pr(X > z_T) = 1/T \quad \iff \quad \Pr(X > u) \cdot \Pr(X - u > z_T - u \mid X > u) = 1/T

Substituting the GPD survival function:

  ⟺  ζu⋅(1+ξzT−uσu)−1/ξ=1/T\iff \zeta_u \cdot \left(1 + \xi \frac{z_T - u}{\sigma_u}\right)^{-1/\xi} = 1/T

and solving for zTz_T:

zT=u+σuξ[(ζuT)ξ−1]z_T = u + \frac{\sigma_u}{\xi}\left[(\zeta_u T)^\xi - 1\right]

All three inputs are estimable: ξ^\hat\xi and σ^u\hat\sigma_u from the GPD fit, ζu=Nu/n\zeta_u = N_u/n from the exceedance rate. For large TT, (ζuT)ξ≫1(\zeta_u T)^\xi \gg 1 and the formula collapses to

zT≈u+σuξ(ζuT)ξz_T \approx u + \frac{\sigma_u}{\xi}(\zeta_u T)^\xi

— the return level is a power function of TT. Watch ξ\xi decide the world one more time: under heavy tails (ξ>0\xi > 0), each tenfold increase in TT multiplies the excess over the threshold by 10ξ10^\xi (about 2x at ξ=0.3\xi = 0.3) — proportional growth; under thin tails (ξ=0\xi = 0) the return level grows only like log⁡T\log T, so a tenfold increase in TT merely adds a fixed constant. How much worse the thousand-year event is than the hundred-year event is written entirely in ξ\xi.

Fit One Yourself

import numpy as np
from scipy.stats import genpareto

# Simulate losses from a heavy-tailed distribution
np.random.seed(0)
n = 5000
losses = -np.random.standard_cauchy(size=n) * 0.005    # ~Cauchy tail
losses = losses[losses > 0]   # restrict to losses
losses = losses[losses < 0.05]    # trim absurd values for fitting

# Choose threshold at 90th percentile
u = np.quantile(losses, 0.90)
excess = losses[losses > u] - u

# Fit GPD by MLE (scipy uses sign convention: shape > 0 = heavy tail)
xi, loc, scale = genpareto.fit(excess, floc=0)

# Return level for T = 250 (one in 250 days)
T = 250
zeta_u = (losses > u).mean()
z_T = u + (scale / xi) * ((zeta_u * T) ** xi - 1)

print(f"Shape parameter xi: {xi:.3f}")
print(f"Scale parameter:    {scale:.5f}")
print(f"Threshold:          {u:.5f}")
print(f"Exceedance rate:    {zeta_u:.4f}")
print(f"250-day return level: {z_T:.5f}")

Check two things against the output. First, the 250-day return level clearly exceeds the empirical 99th percentile — by design, since we are estimating a quantile deeper than the sample can show directly. Second, ξ^\hat\xi comes out well below the Cauchy’s theoretical value: the Cauchy has tail index α=1\alpha = 1, i.e. ξ=1\xi = 1, but the code trimmed values above 0.05 for fitting stability, and truncation systematically drags ξ^\hat\xi down. That is a lesson in itself — deleting “absurd” observations while cleaning data amounts to shearing the tail thin with your own hands, and every subsequent tail estimate inherits the optimism.

The Boundaries of EVT

With the derivation chain complete, the last job is to draw the tool’s boundaries honestly. The hardest constraint is the iid assumption: FTG stands on independent, identically distributed samples, while markets drift across volatility regimes, regulatory environments, and market structures — fitting one GPD to 20 years of data implicitly averages several very different tail behaviors together. The common engineering response is to filter out volatility clustering with a GARCH-type model first and run EVT on the standardized residuals, or to fit by regime. Next is sample size: for ξ>0\xi > 0, confidence intervals on tail estimators widen sharply as exceedances thin out, and below roughly a hundred exceedances the asymptotic theory gets shaky — which is also why the threshold diagnostics cannot be skipped, since the threshold directly sets NuN_u. Finally, the estimators have temperaments of their own: the Hill estimator is sensitive to threshold choice and carries non-trivial finite-sample bias (whose direction depends on the distribution’s second-order tail behavior), moment-type estimators are steadier, and MLE behaves well given enough exceedances; a serious analysis cross-checks several estimators rather than trusting a single number.

None of these boundaries dents EVT’s standing: it remains the only approach to tail modeling backed by a theorem — you are not guessing the functional form of the tail, you are estimating parameters inside the form the limit law prescribes. The next article walks step by step through the practical workflow of fitting a GPD to financial losses.

References

Balkema, A. A., & de Haan, L. (1974). Residual life time at great age. Annals of Probability, 2(5), 792-804.

Coles, S. (2001). An Introduction to Statistical Modeling of Extreme Values. Springer.

Cont, R. (2001). Empirical properties of asset returns: stylized facts and statistical issues. Quantitative Finance, 1(2), 223-236.

Embrechts, P., Klüppelberg, C., & Mikosch, T. (1997). Modelling Extremal Events. Springer.

Fisher, R. A., & Tippett, L. H. C. (1928). Limiting forms of the frequency distribution of the largest or smallest member of a sample. Mathematical Proceedings of the Cambridge Philosophical Society, 24(2), 180-190.

Gnedenko, B. V. (1943). Sur la distribution limite du terme maximum d’une série aléatoire. Annals of Mathematics, 44(3), 423-453.

Jenkinson, A. F. (1955). The frequency distribution of the annual maximum (or minimum) values of meteorological elements. Quarterly Journal of the Royal Meteorological Society, 81, 158-171.

McNeil, A. J., Frey, R., & Embrechts, P. (2015). Quantitative Risk Management: Concepts, Techniques and Tools (rev. ed.). Princeton University Press. Ch. 5.

Pickands, J. (1975). Statistical inference using extreme order statistics. Annals of Statistics, 3(1), 119-131.