A correlation matrix is a photograph of dependence taken in calm weather. The question risk managers actually get paid to answer — if the S&P has one of its worst weeks, what happens to London and Tokyo? — lives in the corner of the joint distribution, where a single number cannot see. Copulas separate what each market does on its own from how they move together, and once you make that split on 25 years of real index data, the verdict is blunt: the Gaussian copula says joint crashes are vanishingly rare; the data says they cluster; and a Student-t copula with 3.5 degrees of freedom repairs most of the damage.

  1. 01Weekly log returns for ^GSPC, ^FTSE, ^N225, 2000–2024 (holiday-aligned)
  2. 02Pearson vs Spearman vs Kendall — three answers to 'how correlated?'
  3. 03Rank-transform to pseudo-observations on the unit square
  4. 04Fit Gaussian and Student-t copulas (df by MLE over a 2–30 grid)
  5. 05Measure empirical tail dependence & conditional crash probabilities

1.Dependence is not correlation

The sample is 1,302aligned weekly returns for the S&P 500, FTSE 100 and Nikkei 225, 2000-01-03 to 2024-12-31 — dot-com bust, 2008, the euro crisis, COVID and the 2022 rates shock all included. Two alignment problems come free with global indices. Each exchange keeps its own holiday calendar, so returns are computed jointly and rows with a missing market dropped. And the markets do not even trade at the same time: Tokyo's 15:00 JST close lands roughly ten hours before London's and some fifteen before New York's, so a same-calendar-day Nikkei close leads the US close and daily cross-market correlations are structurally understated. Resampling to weekly (Friday-to-Friday) returns absorbs most of that offset — the SPX–Nikkei Pearson correlation jumps from 0.15 on daily data to 0.58 on weekly.

Even then, “the correlation” is three different numbers. Pearson measures linear co-movement and is hostage to outliers; Spearman and Kendall are rank-based, so they see only the ordering — exactly the part a copula models. Kendall’s τ has the cleanest interpretation: the probability that two randomly chosen weeks agree in direction, minus the probability they disagree.

SPXFTSENKYSPX1.000.540.37FTSE0.541.000.35NKY0.370.351.00
Kendall's τ, weekly returns 2000–2024rank correlation

2.Sklar's theorem & pseudo-observations

Sklar’s theorem (1959) says any joint distribution factors into its marginals plus a copula — a joint distribution on the unit square with uniform margins that carries all of the dependence and none of the marginal shape. To see the copula empirically, replace each return by its normalised rank, — the probability integral transform done with the empirical CDF. Margins become uniform by construction, so any structure that survives is pure dependence.

pseudo_obs.py
from scipy import stats

def pseudo_obs(x):                       # rank / probability integral transform
    return stats.rankdata(x) / (len(x) + 1)

U = pd.DataFrame({c: pseudo_obs(ret[c].values) for c in ret.columns})
0.20.40.60.80.20.40.60.8u = F(SPX weekly return)v = F(FTSE)
Pseudo-observations, SPX vs FTSE — 400 of 1,302 weeksone point = one week

If the two markets were independent this square would be filled uniformly. Instead the mass drains toward the diagonal — and, critically, piles up in the corners. The lower-left corner is the object of study for the rest of this article: weeks in which both markets were simultaneously in their worst tail.

3.The Gaussian copula — elegant, and wrong in the corner

The Gaussian copula is what you implicitly assume whenever you summarise joint behaviour with a correlation matrix alone. Fitting it is one line: push the pseudo-observations through the standard normal quantile function (“normal scores”) and take their correlation — for SPX–FTSE that gives . It is analytically convenient, scales to any dimension, and has one fatal property: zero tail dependence. For any ρ < 1, the probability that both markets sit below their q-quantile, divided by q, goes to zero as q shrinks. In the limit, joint crashes are not just rare — they are assumed away.

You can watch the assumption fail at finite depth. At the 10% level the fitted Gaussian copula implies a joint-crash ratio of 50.8% for SPX–FTSE; at 5% it has slipped to 43.5%; at 1% it is down to 31.1%, on its way to zero. The empirical series goes the other way: 55.3% at 10%, 55.3% at 5%, 61.4% at 1%. The deeper you look into the tail, the more the data diverges from the model — in the direction that hurts.

4.The t copula & tail dependence

The Student-t copula adds exactly one parameter — the degrees of freedom ν — and that single knob buys tail dependence. We set ρ by Kendall’s τ inversion, , which is exact for elliptical copulas, and profile the exact copula log-likelihood over a ν grid from 2 to 30 on the SPX–FTSE pair:

fit_t_copula.py
rho  = np.sin(np.pi * tau / 2)                  # tau inversion: 0.746
grid = np.arange(2.0, 30.5, 0.5)
ll   = np.array([t_copula_loglik(u, v, rho, df) for df in grid])
df_hat = grid[ll.argmax()]                      # -> 3.5

# lower-tail dependence, closed form (Demarta & McNeil 2005)
lam = 2 * stats.t.cdf(-np.sqrt((df_hat+1)*(1-rho)/(1+rho)), df=df_hat+1)

The likelihood picks — heavy joint tails — and prefers the t copula decisively: log-likelihood 577.9 against the Gaussian’s 526.8 on the same pseudo-observations, one extra parameter. Unlike the Gaussian, the t copula’s tail dependence does not vanish: it converges to the closed-form λ above, which at ν = 3.5 gives 45.9% for SPX–FTSE, 30.9% for SPX–NKY and 29.2% for FTSE–NKY.

0%10%20%30%40%50%SPX–FTSESPX–NKYFTSE–NKY
Joint-crash ratio P(both < 5% quantile) / 5% — data vs modelsempiricalGaussian at 5% · t copula λ

Read the teal-vs-graphite gap per pair: the Gaussian copula, fitted to the same data with the same correlation, undershoots the observed 5% joint-crash ratio for every pair — and remember its bar keeps falling as q shrinks while the empirical one rises. The amber bar is the t copula’s limiting λ: a floor that does not decay, sitting close to what the data shows.

5.Conditional crash probabilities

The same mathematics, phrased the way a risk committee asks it: given that one market has a worst-decile week, what is the probability the other one does too? Under independence the answer would be 10%. The data answers between 37.7% and 55.4%:

PairKendall τρ (t copula)P(both worst-decile | one is)Gaussian @10%t copula λL (ν = 3.5)
SPX–FTSE0.540.7555.4% (72/130)50.8%45.9%
SPX–NKY0.370.5542.3% (55/130)35.5%30.9%
FTSE–NKY0.350.5237.7% (49/130)34.1%29.2%

A worst-decile S&P week drags the FTSE into its own worst decile more than half the time — 72 of 130 of the 130 conditioning weeks — and even the geographically and temporally distant Nikkei follows 42.3%of the time. Note the ordering in every row: empirical ≥ t copula λ > Gaussian-at-depth. The single-parameter fix gets you most, not all, of the way — the residual gap is the asymmetry between crash and boom corners that symmetric elliptical copulas cannot express.

6.The practitioner take

For multi-asset stress testing, the workflow this tutorial rehearses is the one that survives contact with a crisis. Model marginals separately — fat tails, volatility clustering, whatever each series needs — then choose the dependence structure as a deliberate act, not as a side effect of writing down a correlation matrix. Check any candidate copula against the empirical joint-crash ratios at several depths before trusting it, and when in doubt between Gaussian and t, the t copula’s extra parameter is the cheapest tail insurance in the toolbox: here it turned “joint crashes become impossible” into λ ≈ 46% for the closest pair. And know where this road ends: the t copula is elliptical, so it buys its lower-tail dependence bundled with an identical upper tail — it must price joint booms as generously as joint crashes. When the residual crash/boom asymmetry in the data matters, the next tools up are the asymmetric Archimedean families (Clayton glues lower tails only) and vine constructions, which assemble a high-dimensional copula from freely chosen pairs.

References

  1. 1.Sklar, A. (1959). Fonctions de répartition à n dimensions et leurs marges. Publications de l'Institut de Statistique de l'Université de Paris, 8, 229–231.
  2. 2.Embrechts, P., McNeil, A. & Straumann, D. (2002). Correlation and dependence in risk management: properties and pitfalls. In Risk Management: Value at Risk and Beyond, Cambridge University Press.
  3. 3.Demarta, S. & McNeil, A. J. (2005). The t copula and related copulas. International Statistical Review, 73(1), 111–129.
  4. 4.Aas, K., Czado, C., Frigessi, A. & Bakken, H. (2009). Pair-copula constructions of multiple dependence. Insurance: Mathematics and Economics, 44(2), 182–198.
  5. 5.Li, D. X. (2000). On default correlation: a copula function approach. Journal of Fixed Income, 9(4), 43–54.
  6. 6.Companion notebook: copulas-tail-dependence.ipynb — reproduces every figure from raw data (seed 11).