Quant Memo
Advanced

PCA Of The Volatility Surface

Day to day, a volatility surface doesn't wiggle randomly at every point independently — a handful of common movement patterns (level, skew tilt, term-structure twist) explain most of what happens, and PCA finds them.

Prerequisites: Implied Volatility Surface

Watch a crowd dance and, joint by joint, it looks chaotic — but step back and you'll notice most people are really just doing a handful of moves: swaying, stepping side to side, bobbing. Principal component analysis (PCA) applied to a volatility surface does the same kind of stepping back: instead of tracking every strike-tenor point's daily wiggle as an independent random event, it finds the small number of common movement patterns that explain most of what actually happens.

What PCA extracts

Take daily changes in implied vol at, say, 20 grid points across strikes and tenors, over a year of history. That's a 20-dimensional cloud of daily moves. PCA finds the directions in that 20-dimensional space along which the moves are most spread out — the principal components.

Δσt=kλkfkzk,t\Delta\sigma_t = \sum_{k} \lambda_k\, f_k \, z_{k,t}

In words: any day's vector of vol changes Δσt\Delta\sigma_t across the whole grid is approximately a weighted sum of a small number of fixed factor shapes fkf_k (patterns across the strike-tenor grid, found once from history), each scaled that day by a random amount zk,tz_{k,t}, and each shape's typical importance captured by λk\lambda_k. In plain terms: instead of 20 independent numbers moving every day, there are really only 2 or 3 numbers driving almost everything, and fkf_k tells you what shape each of those numbers pushes the whole surface into.

Worked example 1 — reading the first three factor shapes

Empirically, applying PCA to an equity index vol surface almost always turns up the same interpretable pattern, the same way PCA on bond yields turns up level/slope/curvature. PC1 (level): nearly uniform loading across every strike and tenor — a day when this factor moves, the whole surface shifts up or down together, roughly parallel. PC2 (skew/term tilt): loads positively on short-dated puts and negatively on long-dated calls (or vice versa) — this factor captures the smile steepening on one side while flattening on the other, largely independent of the overall level. PC3 (curvature): loads positively on the wings and negatively in the middle (or the reverse) — a butterfly-shaped move, the smile getting more or less convex. In a typical calibration, these three factors together explain upward of 90-95% of the total daily variance of the surface, leaving the rest as point-specific noise.

Worked example 2 — reconstructing a day's move

Suppose on a given day the fitted factor scores are z1=1.2z_1 = 1.2 (level factor moved 1.2 standard deviations), z2=0.5z_2 = -0.5, z3=0.3z_3 = 0.3, and at a specific grid point (3-month, 10-delta put) the three factor loadings are f1=0.9f_1 = 0.9, f2=1.4f_2 = -1.4, f3=0.6f_3 = 0.6, with typical factor sizes λ1=1.0\lambda_1 = 1.0 (in vol points), λ2=0.5\lambda_2 = 0.5, λ3=0.3\lambda_3 = 0.3. The predicted vol change at that point is Δσ(1.0)(0.9)(1.2)+(0.5)(1.4)(0.5)+(0.3)(0.6)(0.3)=1.08+0.35+0.054=1.48\Delta\sigma \approx (1.0)(0.9)(1.2) + (0.5)(-1.4)(-0.5) + (0.3)(0.6)(0.3) = 1.08 + 0.35 + 0.054 = 1.48 vol points. Compare that predicted number to the actual observed change at that grid point — a close match confirms three factors capture that point well; a large gap suggests idiosyncratic, point-specific movement PCA doesn't explain.

Matrix explorer
dashed = before · solid = after
det 1.25trace 2.50λ 1.81, 0.69area scales by 1.25×

The explorer above shows how a linear transformation stretches a unit circle into an ellipse along two perpendicular directions — the ellipse's long and short axes are exactly the geometric picture behind principal components: the directions in which the surface's daily moves are most and least spread out, found from the eigenvectors of the covariance matrix of those moves.

PC1: level PC2: skew tilt PC3: curvature
The three most common historical shapes a vol surface moves in: a parallel shift, a skew tilt, and a wings-vs-middle curvature change — most of any day's surface move is some combination of these three.

What this means in practice

Vol trading desks use surface PCA to design hedges that neutralize the biggest risk factors cheaply — hedging PC1 and PC2 exposure covers most of the day-to-day P&L variance, without needing to individually hedge every strike-tenor bucket. It's also used to flag anomalies: a day where the actual move doesn't fit the usual 2-3 factor pattern well is a day where something point-specific (an earnings date, a single-name event bleeding into an index) is happening.

PCA factors are purely statistical, fit to historical data — they describe how the surface has moved, not why, and they carry no guarantee of holding their shape going forward. In a regime change (a volatility crisis, a shift in dealer positioning), the loadings can shift meaningfully, and a hedge built assuming last year's PC1/PC2 shapes can leave real exposure uncovered exactly when it matters.

A vol surface has dozens of points but typically only 2-3 statistically independent ways it actually moves day to day — PCA finds those shapes (level, skew tilt, curvature) and how much of the surface's variance each one explains.

Practice

  1. If PC1 alone explains 70% of a surface's daily variance and PC1's loading is nearly flat across every grid point, what kind of move does that 70% correspond to in plain terms?
  2. Why might a desk that hedges only PC1 and PC2 exposure still get surprised by P&L on a day when an unexpected earnings announcement moves one single-name's vol sharply?

Related concepts

Practice in interviews

Further reading

  • Cont and da Fonseca, Dynamics of Implied Volatility Surfaces (Quantitative Finance, 2002)
  • Litterman and Scheinkman, Common Factors Affecting Bond Returns (adapted to vol surfaces)
ShareTwitterLinkedIn