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. Before any statistics, two traps come free with global indices, and both are worth learning to spot. First, each exchange keeps its own holiday calendar, so returns are computed jointly and any week missing a market is dropped. Second — subtler — the markets do not even trade at the same time. Tokyo closes roughly ten hours before London and some fifteen before New York, so a same-calendar-day Nikkei close leads the US close, and daily cross-market correlations are structurally understated: the two prices are answering questions asked at different moments. Resampling to weekly (Friday-to-Friday) returns absorbs most of that offset — watch the SPX–Nikkei Pearson correlation jump 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.

Kendall's τ, weekly returns 2000–2024rank correlation

2.Sklar's theorem & pseudo-observations

Here is the idea that makes the whole subject click. Sklar’s theorem (1959) says any joint distribution factors cleanly into two parts: the marginals — what each market does on its own — and a copula, a joint distribution on the unit square that carries all of the togetherness and none of the marginal shape. Separate the dancers from the dance. To see the copula empirically, replace each return by its normalised rank, — the probability integral transform done with the empirical CDF. Ranks are uniform by construction, so the marginals are washed out entirely — any structure that survives in the picture below 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})
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, it scales to any dimension, and it has one fatal property: zero tail dependence. Ask it “given one market is having a 1-in-q disaster, how often is the other one too?” and as q deepens its answer marches to zero — for any ρ < 1, no matter how high. 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.

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%:

P(both in worst decile | one is) per pair — dashed line = the 10% an independence assumption would give
PairP(both worst-decile | one is)Gaussian @10%t copula lambda-L (nu = 3.5)
SPX–FTSE55.4% (72/130)50.8%45.9%
SPX–NKY42.3% (55/130)35.5%30.9%
FTSE–NKY37.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 the candidate copula against the data — compare it to the empirical joint-crash ratios at several depths before trusting it.
  • When in doubt between Gaussian and t, pay the one parameter— the cheapest tail insurance in the toolbox: here it turned “joint crashes become impossible” into λ ≈ 46% for the closest pair.
  • Know where this road ends — the t copula is elliptical, so its lower-tail dependence comes bundled with an identical upper tail: joint booms priced as generously as joint crashes. When that asymmetry 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).