Copulas
A copula glues fixed marginal shapes into a joint shape. Same uniform margins can mean independence, Gaussian calm, or joint crashes together.
Why Does This Exist?
Correlation lies. Two assets can share correlation 0.5 yet behave oppositely in crashes: one pair stays calm, another tanks together. Margins describe single variables; correlation describes average co-movement; neither describes joint extremes, which is what risk, retrieval failures, and sensor outages care about.
Sklar's theorem splits the problem: any joint CDF for a copula on . Fit margins once, then choose for the dependence, including tail dependence. It builds on probability distributions and sharpens the covariance view in expectation, variance and covariance.
The one idea you need first
The probability integral transform: if has CDF , then is uniform on . Copulas model the joint law of those uniforms, so margins are standardized away and only dependence remains.
Think of It Like This
Recipes versus plating
Two dishes share identical ingredients (the margins) but different plating (the copula). One plates calmly, elements apart; the other piles everything in one corner so flavors collide.
Tasting one ingredient cannot tell the plates apart. Watching how bites combine can. Where it stops: plating is chosen freely, while copulas must be valid distributions with uniform margins, which constrains the shapes.
How It Actually Works
A copula is a CDF on with uniform margins. Gaussian copula: apply per margin, join with correlation , map back; tail dependence stays 0, extremes arrive independently. t copula with degrees of freedom: same idea with multivariate t, giving symmetric tail dependence even at modest correlation. Estimation: fit margins (empirical CDFs work), transform to uniforms, fit by maximum likelihood on the unit cube.
Worked example
Take uniform margins and a Gaussian copula with : joint crash probability is about , barely above independence scale. Swap to a t copula with , same : the same corner probability roughly triples, near , because extremes co-move. Same margins, same correlation input, threefold difference where it hurts. That gap is the reason risk teams fit the copula, not just .
Code
import numpy as np
rng = np.random.default_rng(5)n = 200000z = rng.multivariate_normal([0, 0], [[1, 0.5], [0.5, 1]], size=n)u = 0.5 * (1 + np.vectorize(lambda t: float(np.tanh(t * 0.5)))(z)) # toy CDF mapprint(round(float(((u[:, 0] > 0.95) & (u[:, 1] > 0.95)).mean()), 4)) # -> ~0.01xThe snippet's point is the workflow (margins to uniforms to joint tail rate), not the toy map's exact constant. Real desks use empirical CDFs plus a fitted copula library.
Watch Out For
Quoting correlation as joint-extreme safety
Correlation 0.3 sounds safe until a t copula puts ten times the Gaussian mass in the joint corner. Portfolios, multi-sensor failures, and retrieval cascades live in corners, not averages.
Always report a tail-dependence coefficient or corner probability alongside . If corners matter, fit the copula on the uniforms.
Fitting the copula on raw scales
Fitting dependence on untransformed confounds margin shape with dependence: skewed margins masquerade as dependence. The copula must see uniforms .
Transform first with fitted or empirical CDFs, then fit . Check uniformity of each margin on before trusting .
The Quick Version
- Sklar: joint equals copula applied to marginal CDFs; margins and dependence separate.
- Gaussian copulas give zero tail dependence; t copulas let extremes arrive together.
- Same uniforms and same can differ threefold in corner probability.
- Fit margins first, transform to uniforms, then fit the copula.
- Correlation alone never certifies joint-extreme safety.
- Raw-scale fitting confounds skew with dependence; standardize to uniforms first.