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.

Weibull (Type III): Bounded Extremes

Open In Colab

This notebook walks the canonical block-maxima → GEVD pipeline on a parent with a finite right endpoint. The Fisher–Tippett–Gnedenko theorem says the limit law is a Reverse-Weibull (GEVD with ξ<0\xi < 0); fitting it correctly is essential whenever physics or biology imposes a hard cap on the variable.

The headline quantity here is the upper endpoint xsup⁡=μ−σ/ξx_{\sup} = \mu - \sigma/\xi — a posterior summary of the largest possible value. In reliability and actuarial work this is often the only quantity reported, since the entire return-level curve asymptotes to it.

We compare against a misspecified Gumbel (ξ=0\xi = 0, unbounded) on the same maxima and quantify how far the misspecified return-level curve runs above the true cap.

Math content

  • The Reverse-Weibull PDF and CDF, the bounded support μ−σ/ξ\mu - \sigma/\xi.

  • The Weibull domain of attraction: parents with finite right endpoint xF<∞x_F < \infty.

  • Posterior on the upper endpoint, including the posterior predictive max distribution.

  • Why misspecified Gumbel over-predicts the long-period return level.

Python implementation: CPython
Python version       : 3.13.5
IPython version      : 9.10.0

jax       : 0.6.2
numpy     : 2.4.4
matplotlib: 3.10.8
numpyro   : 0.19.0
xarray    : 2026.4.0
xtremax   : 0.0.0

Compiler    : GCC 11.2.0
OS          : Linux
Release     : 6.8.0-1044-azure
Machine     : x86_64
Processor   : x86_64
CPU cores   : 16
Architecture: 64bit

1. The Weibull domain of attraction

The third Fisher–Tippett–Gnedenko regime is for parents with a finite right endpoint

xF  :=  sup⁡{x:F(x)<1}  <  ∞.x_F \;:=\; \sup\{x : F(x) < 1\} \;<\; \infty.

FF lies in the Weibull domain of attraction D(Gξ)\mathcal{D}(G_\xi) with ξ<0\xi < 0 iff Fˉ(xF−1/u)\bar F(x_F - 1/u) is regularly varying at ∞\infty with index −1/ξ-1/\xi (note ξ<0\xi < 0 here, so −1/ξ>0-1/\xi > 0).

Geometrically: as you approach the right endpoint, the survival function vanishes like a power of the distance to the endpoint. This corresponds to phenomena where a bounded mechanism — material strength, biological lifespan, hardware capacity — sets a hard ceiling.

Reverse-Weibull 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 \le \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).

The same Coles formula as Fréchet, restricted to ξ<0\xi < 0. The crucial structural difference is the upper support boundary:

 xsup⁡  =  μ−σ/ξ  =  μ+σ/∣ξ∣ \boxed{\,x_{\sup} \;=\; \mu - \sigma/\xi \;=\; \mu + \sigma/|\xi|\,}

As ξ→0−\xi \to 0^- this boundary recedes to +∞+\infty and we recover the Gumbel limit. As ξ→−∞\xi \to -\infty the support collapses around μ\mu.

All moments are finite because the support is bounded. The mean is

E[X]=μ+σξ(Γ(1−ξ)−1),ξ<0,\mathbb{E}[X] = \mu + \frac{\sigma}{\xi}\bigl(\Gamma(1-\xi) - 1\bigr), \qquad \xi < 0,

where Γ\Gamma is the gamma function. (For ξ<0\xi < 0, 1−ξ>11-\xi > 1, so Γ(1−ξ)\Gamma(1-\xi) is well-defined.)

Return level. Same closed form as Fréchet,

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

but the return-level curve is qualitatively different: as T→∞T \to \infty, −log⁡(1−1/T)→0-\log(1 - 1/T) \to 0 and (−log⁡(1−1/T))−ξ→0(-\log(1 - 1/T))^{-\xi} \to 0 (since −ξ>0-\xi > 0). Therefore

zT  →T→∞  μ−σ/ξ  =  xsup⁡.z_T \;\xrightarrow[T \to \infty]{}\; \mu - \sigma/\xi \;=\; x_{\sup}.

On a log⁡T\log T axis the curve flattens and asymptotes to the upper endpoint — a visual signature unique to the Weibull regime.

2. Synthetic capped daily series

We simulate a process whose values are bounded above by a hard cap xF=100x_F = 100. The “noisy” mechanism is a beta-like draw that lives on [0,100][0, 100] and concentrates near 90, with occasional small dips. The annual maxima will sit just below 100 with a left tail extending downward — exactly the Weibull-attracting picture.

<Figure size 1300x360 with 2 Axes>

3. Annual block maxima

Annual maxima cluster just below the cap. With 365 daily draws per year, the empirical distribution of the maxima already shows the tell-tale Weibull shape: a sharp drop-off at the right and a long left tail.

Number of annual maxima: 80
Range: 97.676 to 99.925
True cap: 100.0
<Figure size 1300x360 with 2 Axes>

4. Bayesian Weibull fit

WeibullType3GEVD constrains concentration to be negative in its arg_constraints. We use that strict constraint to encode our prior knowledge that the parent is bounded above.

Priors.

  • μ∼N(zˉ, sz)\mu \sim \mathcal{N}(\bar z,\, s_z): the empirical mean of the maxima — for ξ<0\xi < 0 the support extends above μ\mu, so this is a benign default.

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

  • ξ\xi: we transform η∼HalfNormal(0.4)\eta \sim \mathrm{HalfNormal}(0.4) and let ξ=−η\xi = -\eta so that ξ<0\xi < 0 is enforced. The half-normal puts ∼95%\sim 95\% mass on η∈(0,0.8)\eta \in (0, 0.8), i.e. ξ∈(−0.8,0)\xi \in (-0.8, 0) — physically reasonable.


                mean       std    median      2.5%     97.5%     n_eff     r_hat
       eta      0.49      0.07      0.49      0.37      0.63    975.29      1.00
        mu     99.10      0.06     99.10     99.00     99.22   1098.85      1.00
     sigma      0.46      0.04      0.45      0.38      0.54    974.35      1.00

Number of divergences: 290

5. The headline quantity: posterior on the upper endpoint

The most physically meaningful summary of a Weibull fit is the upper endpoint

xsup⁡  =  μ−σ/ξ  =  μ+σ/η.x_{\sup} \;=\; \mu - \sigma/\xi \;=\; \mu + \sigma/\eta.

We compute it for every posterior sample. The posterior on xsup⁡x_{\sup} should concentrate near the true cap xF=100x_F = 100.

<Figure size 800x450 with 1 Axes>
Upper endpoint posterior median: 100.02
95% credible interval:           [99.94, 100.30]
True cap:                        100.0

Reading this. The posterior on xsup⁡x_{\sup} is the Bayesian way to ask “where is the cap?” — the upper credible bound is what you would conservatively report as the design value. With 80 years of data the credible band is a few percent wide.

6. Misspecified Gumbel for comparison

A practitioner who ignores the bounded-tail nature of the data and fits a Gumbel (ξ=0\xi = 0) gets a return-level curve that keeps climbing in log⁡T\log T — past the actual physical cap.

7. Return-level comparison

This is the punchline. Both fits agree on the bulk; the Weibull curve flattens to the cap, the Gumbel curve runs straight through it.

<Figure size 900x500 with 1 Axes>
Period at right edge:                                  T = 10000
  Weibull return level (posterior median):             100.01
  Gumbel  return level (posterior median):             103.70
  True cap:                                            100.0
  Gumbel over-prediction past the cap:                  +3.70

Interpretation. The Weibull fit says “no matter how long you wait, the value cannot exceed the cap” — the curve flattens. The Gumbel fit cannot represent that constraint and produces nonsensical predictions for T≳100T \gtrsim 100 years, sailing well past the physical limit. In a reliability context this is the difference between a safe design and an over-conservative (and probably unbuildable) one.

8. Posterior on the shape parameter

The Weibull posterior on ξ\xi should be firmly negative — that is, after all, the defining trait. We plot it alongside zero (the Gumbel boundary).

<Figure size 700x400 with 1 Axes>

Takeaways

  • Bounded extremes need ξ<0\xi < 0. The Weibull posterior concentrates well inside the negative half-line; the upper endpoint μ−σ/ξ\mu - \sigma/\xi is the practical headline quantity.

  • The cap is identifiable. With 80 years of data and a parent that frequently approaches the boundary, the posterior on xsup⁡x_{\sup} is a few-percent-wide credible band centred on the truth.

  • Misspecification is visible. The Gumbel return-level curve that runs past the physical cap is a self-diagnostic: any time a return-level extrapolation exceeds a hard physical limit, the model is wrong, not the limit.

  • WeibullType3GEVD constrains ξ<0\xi < 0 structurally. Use it whenever you have prior reason to believe the parent has a finite right endpoint; the constraint stabilises the fit and removes a degree of freedom that the data may not pin down well on its own.

This concludes the three-regime tour (Gumbel / Fréchet / Weibull). The next two notebooks shift gears to the peaks-over-threshold parameterisation via the Generalized Pareto Distribution.