Ridge Factor Risk Decomposition

The Risk Decomposition sub-pill answers: "how much of my portfolio's return variance is explained by factor exposures, and how much remains as idiosyncratic risk?" The engine fits a ridge regression of portfolio returns onto factor returns and reports an R² plus per-factor variance contributions. This article explains the method, why ridge over OLS, and how to interpret the output.

The regression

For T rebalance periods, with portfolio return rp,t and factor returns ri,t for i in {value, quality, momentum, growth}:

rp,t = α + ∑i βi · ri,t + εt

The model is estimated via ridge regression with a small penalty (default αridge = 0.1) on the β coefficients:

minimise: ∑t εt2 + αridge · ∑i βi2

Then R² is the standard variance-explained ratio:

R² = 1 − var(ε) / var(rp)

Why ridge instead of OLS

OLS (ordinary least squares) is fine when factor returns are orthogonal and the sample is large. In factor backtests neither is true:

  • Factors are correlated. Value and quality have correlation ~0.3; momentum and growth even higher in some periods. OLS with correlated regressors produces unstable, hard-to-interpret coefficients.
  • Small T. Most backtests have 20–60 rebalance periods. With 4 regressors plus intercept, degrees of freedom are tight; OLS overfits.

Ridge (Hoerl & Kennard 1970) shrinks the β coefficients toward zero, exchanging a small amount of bias for substantially lower variance. The result is a more stable decomposition. The small αridge = 0.1 default means the shrinkage is gentle — only the noisiest coefficients are pulled materially toward zero.

R² interpretation

Reading
> 0.60Pure factor bet. Returns will track factor performance; little room for stock-selection alpha.
0.30–0.60Hybrid. Factor exposures matter but stock selection adds material variance.
< 0.30Mostly idiosyncratic. Either skilled stock selection or hidden factor exposure (see Specific Return).

Per-factor variance contribution

The sub-pill decomposes the explained variance per factor. With factor returns ri and coefficients βi, the contribution to variance is:

contributioni = βi2 · var(ri) + cross-terms with other factors

The sub-pill reports a normalised per-factor share so all contributions sum to the R². The largest-contribution factor is the dominant risk driver — the factor whose performance most determines the strategy's.

Cross-checking with attribution

Risk Decomposition and Factor Attribution use the same inputs but answer different questions:

  • Attribution: "Which factor contributed the most to my realised return?"
  • Risk Decomposition: "Which factor contributed the most to my realised return variance?"

They usually agree, but not always. A factor that delivered a small steady return over many periods can be the top attribution contributor without being the top variance contributor. Conversely, a factor that delivered one large swing dominates variance without dominating cumulative return.

Caveats

  • Small T inflates R². With T = 20 and 4 regressors, R² can hit 0.4 by chance. Always compare against an adjusted R² if making strong claims.
  • The factor list is closed. Variance not explained by value/quality/momentum/growth becomes "specific" — even if it's really a sector tilt or country tilt. Add candidate factors to the model and re-run if specific is unexpectedly high.
  • Linear-only. Ridge regression assumes the portfolio return is a linear function of factor returns. If the strategy has option-like or non-linear exposure (e.g., stop-losses), the linear fit will misattribute.

When R² is the wrong number to chase

High R² sounds good but means the strategy has surrendered its alpha to factor exposure. Most quant strategies want moderate R² (0.30–0.50): the factor exposures explain the strategy's baseline behaviour, while specific return provides the differentiator vs. just buying a factor ETF.

Ridge α is a tunable, not a verdict-changer

The default ridge α = 0.1 is intentionally mild. Increasing to 1.0 will shrink coefficients more and reduce R² slightly. The verdict bands in the table above assume the default — if you re-run with stronger shrinkage you'll see lower R² numbers across the board.

Further Reading

Foundational papers

  • Hoerl, A. E. & Kennard, R. W. (1970). Ridge Regression: Biased Estimation for Nonorthogonal Problems. Technometrics, 12(1), 55–67.
  • Tibshirani, R. (1996). Regression Shrinkage and Selection via the Lasso. Journal of the Royal Statistical Society B, 58(1), 267–288.

Textbook references

  • Campbell, J. Y., Lo, A. W. & MacKinlay, A. C. (1997). The Econometrics of Financial Markets. Princeton University Press.

Related QuanterLab articles

Try it in QuanterLab

A high R² (> 0.6) means the strategy is a factor bet. A low R² (< 0.3) means most variance is unexplained — check for hidden factor exposures before celebrating it as "stock-picking skill."

Back to QuanterLab
Report
Loading report...
Article
Loading article...