Reader question: A yield curve may contain ten, twenty or more maturities. Do we really need a separate risk factor for every tenor, or can most historical curve movement be represented by a much smaller number of statistically independent directions?
Principal component analysis (PCA) answers that compression question. It takes a covariance matrix of historical yield-curve changes, diagonalises it, and ranks orthogonal directions by the amount of variance they explain. In many sovereign-rate datasets, the dominant loading shapes resemble level, slope and curvature.
This article owns one precise computational job: linear statistical factor extraction from historical yield-curve changes for dimensionality reduction, scenario construction and risk attribution. It does not own yield-curve bootstrapping, Nelson–Siegel–Svensson cross-sectional fitting, HJM risk-neutral dynamics or a regulatory IRRBB scenario specification.
This is public mathematical and computational education. It is not a bond-trading recommendation, a forecast of interest rates or a claim that historical principal components are permanent economic laws.
1. Start with a matrix of curve changes
Suppose daily zero yields are observed at d maturities:
yt = (yt,1,…,yt,d)T.
For risk-factor analysis, a common input is the change vector:
Δyt = yt − yt−1.
Using changes rather than yield levels is often more appropriate because yield levels can be highly persistent and non-stationary. PCA on levels can mostly rediscover long historical regimes rather than short-horizon risk movements.
The exact input definition—daily, weekly, zero yields, par yields, forward rates, basis-point changes or returns—is part of the model and must be recorded.
2. Center the data
Let the sample mean yield change be:
μ = (1/N)Σ Δyt.
Define centered observations:
xt = Δyt − μ.
Stack them into an N×d matrix X.
The sample covariance matrix is:
Σ̂ = XTX/(N−1).
Each diagonal element is variance at a tenor; each off-diagonal element is covariance between tenor changes.
3. Eigendecomposition creates principal directions
Because Σ̂ is symmetric positive semidefinite, it has an eigendecomposition:
Σ̂ = VΛVT,
where:
- columns vj of V are orthonormal eigenvectors;
- Λ contains non-negative eigenvalues λ1≥λ2≥…≥λd.
Each eigenvector is a curve-shock shape across maturities.
Each eigenvalue is the historical variance of the corresponding principal-component score.
4. Factor scores
The score of observation t on component j is:
zt,j = vjTxt.
The scores are uncorrelated in sample:
Cov(zi,zj) = 0
for i≠j.
The original change vector can be reconstructed exactly if all components are retained:
xt = Vzt.
If only the first k components are retained:
x̂t = Vkzt,k.
The discarded remainder is residual/idiosyncratic curve movement.
5. Variance explained
The fraction of total sample variance explained by component j is:
pj = λj/Σ λi.
Cumulative variance for the first k components is:
Pk = Σj=1k pj.
Litterman and Scheinkman’s classic bond-return study showed that a small number of common factors explained the overwhelming majority of variation in their Treasury portfolios. Later yield-curve studies often recover similar low-dimensional structure, but the exact percentages vary materially by market, tenor set, sample period and input transformation.
Falsifier: never hard-code “three factors explain 99%” as a universal truth. Calculate the eigenvalue spectrum for the actual dataset.
6. Why the first component often looks like level
The first eigenvector commonly has the same sign across maturities and similar magnitude.
A positive factor shock therefore moves most yields in the same direction:
Δy ≈ α1v1.
This resembles a near-parallel shift and is conventionally called the level factor.
But the eigenvector sign is arbitrary. If v is an eigenvector, −v is equally valid. A “positive level shock” must therefore be defined by a sign convention rather than inferred from the eigensolver’s raw output.
7. Why the second component often looks like slope
The second eigenvector often has opposite signs at short and long maturities.
A positive score can raise the long end while lowering the short end, or the reverse depending on sign convention.
This resembles steepening/flattening and is called slope.
The point is not the label. The measurable object is the eigenvector loading across maturities.
8. Why the third component often looks like curvature
A common third eigenvector loads the belly of the curve differently from the short and long ends.
This produces a butterfly-like deformation and is called curvature.
In some markets or samples, however, the third component may look more like a second slope or a localised tenor movement. Economic names should follow the loading shape rather than force every PCA into a textbook picture.
9. Covariance PCA versus correlation PCA
If PCA is performed on the covariance matrix, tenors with larger historical volatility contribute more strongly to the objective.
If each tenor is standardized first and PCA is performed on the correlation matrix, every tenor is given unit variance before decomposition.
These are different questions:
- covariance PCA: which directions explain the largest absolute yield-change variance?
- correlation PCA: which standardized co-movement patterns dominate after equalizing tenor variances?
For risk measured in basis-point yield changes, covariance PCA is often the more direct choice. But the decision must be explicit.
10. Yield changes versus bond returns
PCA on yield changes and PCA on bond returns produce different loadings.
A one-basis-point move in a 30-year yield produces much more price P&L than the same move in a short bill.
If the objective is P&L risk, one may instead transform yield shocks through DV01/duration or perform PCA directly on bond returns.
Falsifier: do not interpret a yield-space eigenvector as a portfolio P&L factor without mapping it through instrument sensitivities.
11. Factor exposure of a portfolio
Let a portfolio’s first-order sensitivity to tenor yields be the vector:
g = ∂P/∂y.
Under PCA shock vj, approximate P&L sensitivity is:
ej = gTvj.
If the factor score moves by αj:
ΔP ≈ ejαj.
This connects statistical yield-curve factors to tradable portfolio risk.
12. Factor hedging
Suppose the portfolio has exposures e1,e2,e3 to level, slope and curvature.
Choose liquid hedge instruments whose PCA exposures form matrix H.
Hedge weights h can solve:
Hh = −e.
If exactly three independent hedge instruments span three factor exposures, this is a 3×3 linear system. With more instruments, least squares or constrained optimization can minimize residual factor risk and transaction cost.
PCA therefore converts a large tenor-by-tenor hedge problem into a lower-dimensional linear algebra problem.
13. PCA hedge versus key-rate hedge
A key-rate-duration hedge neutralizes sensitivities at selected maturity points.
A PCA hedge neutralizes exposure to historically dominant combinations of maturities.
Key-rate hedging is more directly local and does not depend on historical covariance estimation. PCA hedging is more compact but depends on factor stability.
Neither universally dominates; they answer different risk questions.
See interest-rate hedge construction for the broader duration/key-rate job.
14. Stress scenarios from PCA
A simple historical factor stress can set:
αj = c × √λj
for selected multipliers c.
Then reconstruct:
Δy = Σ αjvj.
More realistic stress design can use empirical factor quantiles, multivariate heavy-tailed distributions or selected historical score combinations.
PCA supplies the axes; it does not tell us that Gaussian shocks are appropriate.
15. Scenario compression
If d=20 tenors but k=3 factors explain most ordinary variance, a scenario engine can simulate three scores rather than twenty correlated tenor shocks, then map them back through V3.
This reduces simulation dimension and eliminates the need to simulate a large raw covariance matrix directly.
But discarded components still matter for:
- basis trades;
- localized curve positions;
- stress periods;
- instruments concentrated in a weakly explained tenor.
Dimension reduction is not permission to set residual risk to zero.
16. PCA and HJM are different layers
Heath–Jarrow–Morton algorithms describe arbitrage-consistent risk-neutral forward-rate dynamics once volatility factor functions are specified.
PCA is a historical statistical decomposition. It can help estimate empirical volatility directions for a low-factor HJM implementation, but PCA itself imposes no risk-neutral drift restriction and no absence-of-arbitrage condition.
17. PCA and yield-curve construction are different layers
Yield-curve algorithms own discount-factor bootstrapping and interpolation from market instruments.
PCA should normally be applied to a consistently constructed time series of curves. If curve-building conventions change halfway through history, the PCA can identify the methodology change as if it were market risk.
18. Maturity-grid consistency
Historical curves rarely have exactly the same raw bonds every day.
A PCA input matrix therefore usually requires yields at fixed tenors such as 3M, 1Y, 2Y, 5Y, 10Y and 30Y.
Those tenors may themselves be interpolated outputs from a curve model.
Falsifier: replay PCA using alternative reasonable interpolation methods. If factors change materially, apparent factor structure may be driven by curve construction rather than market movement.
19. Missing observations
Deleting every day with any missing tenor can waste information and create selection bias.
Naively forward-filling a missing tenor manufactures zero changes.
Possible approaches include:
- consistent curve interpolation before PCA;
- restricting to a stable tenor set;
- model-based missing-data methods;
- pairwise covariance with PSD repair, used cautiously.
The missing-data policy belongs in the model documentation.
20. Eigenvector sign flips are not economic regime changes
An eigensolver may return v today and −v tomorrow even if the underlying subspace is unchanged.
For rolling PCA, align signs to a reference:
if vnewTvold < 0, set vnew ← −vnew.
Without sign alignment, factor-score charts can show fake jumps.
21. Near-equal eigenvalues create a deeper instability
If λ2 and λ3 are nearly equal, their individual eigenvectors can rotate substantially under small data perturbations while the two-dimensional subspace remains stable.
This is not solved by sign alignment.
Falsifier: monitor eigenvalue gaps and compare subspaces using principal angles. Do not over-interpret a precise “slope” versus “curvature” label when the eigenvalues are nearly degenerate.
22. Rolling-window PCA
To monitor regime drift, fit PCA on a rolling window rather than one lifetime sample.
Track:
- variance explained;
- loading shapes;
- subspace angles;
- factor-score volatility;
- residual variance.
A shorter window adapts faster but produces noisier eigenvectors. A longer window is more stable but can blend obsolete regimes with current markets.
23. Crisis periods can change factor structure
During stressed markets, yield volatility can become more one-dimensional or, alternatively, localized dislocations can increase residual components.
The proportion explained by PC1–PC3 is therefore itself a time-varying diagnostic.
Falsifier: compare calm and stressed subsamples. If retained components lose substantial explanatory power in stress, a three-factor day-to-day model should not be assumed adequate for stress testing.
24. Outliers
Sample covariance is sensitive to large observations.
A data error, stale quote correction or extraordinary event can rotate PCA loadings.
Useful controls include:
- raw-data reconciliation;
- robust covariance as a comparison;
- winsorization only with documented justification;
- leave-one-event-out sensitivity;
- crisis versus normal-regime decompositions.
Real crises should not be removed merely because they are statistically inconvenient.
25. Covariance estimation error
If d is large relative to N, Σ̂ is noisy and can be poorly conditioned.
Shrinkage estimators can stabilize the covariance matrix before PCA.
See Ledoit–Wolf covariance shrinkage for the separate covariance-estimation job.
But shrinkage changes eigenvalues and eigenvectors. It is a deliberate bias–variance trade-off, not a free numerical fix.
26. Component selection
Possible selection criteria include:
- cumulative variance threshold;
- scree-plot elbow;
- out-of-sample curve reconstruction;
- out-of-sample portfolio P&L explanation;
- stability of factor loadings;
- downstream hedge performance.
A 99% variance threshold may retain factors that add little to the actual portfolio job, while a 95% threshold may miss a low-variance factor to which the portfolio has huge exposure.
27. PCA is unsupervised
PCA maximizes variance explained in the yield data. It does not maximize:
- portfolio P&L prediction;
- economic interpretability;
- forecast accuracy;
- hedge effectiveness;
- tail-risk explanation.
If the target is a specific portfolio, supervised or sensitivity-weighted factor methods may be preferable.
28. PCA is not causal
The labels level, slope and curvature describe statistical shapes.
PCA does not prove that PC1 is caused by inflation, PC2 by monetary policy or PC3 by any single macroeconomic driver.
Economic interpretation requires additional evidence.
Falsifier: if a factor’s loading shape stays stable while its macro correlations reverse across regimes, the statistical factor remains valid even though the causal story did not.
29. PCA factors are sample-dependent units
Eigenvectors are normalized to unit Euclidean length. Factor-score units therefore depend on the input scaling.
A one-unit PC shock is not automatically one basis point or one standard deviation.
State explicitly whether scenarios are expressed as:
- raw score units;
- one standard deviation √λ;
- historical quantiles;
- chosen basis-point-equivalent shocks.
30. Inputs and outputs
Inputs can include:
- historical fixed-tenor curves;
- yield/forward/par-rate definition;
- change horizon;
- sample window;
- centering/scaling convention;
- covariance estimator;
- missing-data policy;
- tenor interpolation method;
- number of components;
- sign/subspace alignment rule.
Outputs can include:
- eigenvalues;
- variance-explained ratios;
- eigenvector loadings;
- factor scores;
- reconstructed yield shocks;
- residual covariance;
- portfolio factor exposures;
- hedge weights;
- rolling stability metrics;
- subspace-angle diagnostics.
31. Evidence polarity
Evidence for confidence includes:
- first components explain a high and stable share of relevant variance;
- loading shapes are stable after sign alignment;
- out-of-sample reconstruction error is small;
- factor-hedged portfolios show reduced realized curve P&L;
- retained subspace remains stable across nearby windows;
- residual risk is small for the intended portfolio;
- results are robust to reasonable tenor/interpolation choices.
Evidence against confidence includes:
- large rolling loading rotations;
- near-equal eigenvalues making labels unstable;
- large residual variance in stress;
- factor hedge performs poorly out of sample;
- results depend materially on covariance versus correlation scaling without a business rationale;
- curve-construction changes dominate the components;
- outlier handling changes factor shape dramatically.
32. Counterexample: PCA on yield levels
Suppose yields trended downward for twenty years and then shifted into a new regime.
PCA on levels may identify the long-run regime difference rather than daily curve risk.
Falsifier: compare PCA on levels, daily changes and weekly changes. If interpretations differ sharply, the data transformation is driving the answer.
33. Counterexample: standardizing every tenor
A very short tenor is noisy but low-volatility; a long tenor has much larger basis-point variance.
Correlation PCA gives them equal variance before decomposition and may elevate short-end microstructure noise into a major component.
Falsifier: compare covariance and correlation PCA and inspect downstream hedge performance.
34. Counterexample: a portfolio concentrated in PC4
PC4 explains only 0.5% of aggregate yield variance, so a three-factor model discards it.
But a relative-value portfolio is constructed specifically to cancel PC1–PC3 and load heavily on the local curve shape represented by PC4.
Falsifier: evaluate component importance after multiplying by portfolio exposure. Low market variance does not imply low portfolio risk.
35. Counterexample: sign flip mistaken for market reversal
Rolling PCA produces a slope eigenvector with all signs reversed from yesterday.
Factor scores also reverse.
No market event occurred; the eigensolver simply selected the equally valid −v representation.
Falsifier: align signs before interpreting factor time series.
36. Counterexample: slope and curvature rotate
PC2 and PC3 eigenvalues become almost equal.
Their individual loadings rotate between windows even though the two-dimensional span changes little.
Falsifier: compare principal angles of the PC2–PC3 subspace rather than individual eigenvectors.
37. Counterexample: historical PCA used as a risk-neutral pricing model
A desk inserts historical PCA factor distributions directly into option pricing.
Historical P-measure covariance does not automatically define Q-measure dynamics or satisfy no-arbitrage drift restrictions.
Falsifier: separate empirical risk-factor estimation from risk-neutral calibration and verify pricing consistency independently.
38. Alternatives
Key-rate factors: deterministic, interpretable tenor shocks.
Nelson–Siegel factors: parametric level/slope/curvature-like cross-sectional loadings.
Dynamic factor models: explicitly model factor time-series evolution.
Independent component analysis: seeks statistical independence beyond zero covariance.
Robust PCA: separates low-rank structure from outlier/sparse disturbances under stronger assumptions.
Autoencoders/nonlinear factors: can capture nonlinear manifolds but add model complexity and validation burden.
39. Connection to IRRBB
IRRBB standardized algorithms own prescribed supervisory banking-book shocks. PCA historical factors can complement those shocks for internal risk analysis, but they do not replace regulatory scenarios.
40. Weak links
- levels used when changes were intended;
- inconsistent tenor definitions through history;
- correlation/covariance choice undocumented;
- missing-data forward fills manufacturing zero shocks;
- sign flips untreated;
- near-degenerate eigenvalues over-interpreted;
- too few observations for the number of tenors;
- outliers/data errors dominating covariance;
- residual factors discarded despite portfolio exposure;
- historical PCA mistaken for a causal or risk-neutral model.
41. What would falsify confidence?
Confidence should be withdrawn if retained factors fail to reconstruct out-of-sample curve changes; if factor hedges do not reduce relevant P&L; if loadings/subspaces drift too rapidly for the intended horizon; if omitted components carry material portfolio exposure; or if the result changes radically under reasonable preprocessing choices.
42. Verification and update triggers
Preserve raw curve source, construction method, tenor grid, transformation, sample dates, covariance estimator, component count, eigenvectors/eigenvalues, sign alignment and portfolio exposure mapping.
Revalidate when:
- curve methodology changes;
- monetary-policy regime changes;
- volatility regime changes materially;
- new tenors/products are added;
- eigenvalue gaps collapse;
- variance explained declines;
- factor-hedge residuals rise;
- rolling subspace angles exceed a documented threshold.
43. Primary and high-quality references
- Robert Litterman and José Scheinkman, Common Factors Affecting Bond Returns, Journal of Fixed Income, 1991.
- CFA Institute Research Foundation, Factor Investing and Asset Allocation, discussion of low-dimensional yield factors.
- Federal Reserve Board, Nominal Yield Curve, for a stable official fixed-tenor curve source and methodology context.
- Refet Gürkaynak, Brian Sack and Jonathan Wright, The U.S. Treasury Yield Curve: 1961 to the Present, Federal Reserve FEDS 2006-28.
Educational boundary: PCA is a compression algorithm. It finds directions of maximum historical variance under a chosen dataset and preprocessing rule. It does not prove causality, guarantee future factor stability or enforce no-arbitrage pricing dynamics.
