The one-sentence version
The returns of a stock (or a portfolio) can be decomposed into two parts: one part comes from its exposure to several common drivers (market movement, small-cap vs. large-cap, cheap vs. expensive stocks...), and the other part is unique to it. These common drivers are called factors, and the sensitivity to each factor is called factor exposure (beta). Once decomposed, the remaining average excess return that cannot be explained by the factors is called alpha. From the CAPM of the 1960s, which had only a single "market factor," to the Fama–French three-factor and five-factor models of the 1990s, and then to momentum, quality, low volatility, and more, factor models are the common language of modern quantitative investing.
Disclaimer
This article is for technical educational purposes only and does not constitute any investment advice. The code in this article uses simulated data.
Layer 1: The Intuition
1.1 Where does the taste of a soup come from?
Is a soup very salty because of the salt and soy sauce added, or because of the chef's special skill? If you know how much salt and soy sauce were put into the soup, you can estimate how much the "skill" contributed.
A fund earns 20%:
- If the market rose 18% that year, and the stocks in this fund are inherently more volatile than the market, then most of that 20% is "salt" (market exposure);
- If it primarily buys small-cap stocks, and small-cap stocks generally outperformed that year, that is another kind of "soy sauce" (size factor exposure);
- After deducting these, what remains is the "skill" (alpha).
A factor model is a tool to decompose returns into "ingredients" and "skill."
1.2 Why this matters
| Use Case | Description |
|---|---|
| Performance Attribution | Determining whether a fund manager has real skill or has simply bet on the right style |
| Risk Management | Knowing which factors a portfolio is exposed to helps you understand how it will be affected when the market changes |
| Strategy Construction | Deliberately exposing oneself to factors that have long-term premiums ("Smart Beta") |
| Pricing | Explaining why the expected returns of different assets differ |
Layer 2: Evolution of Factor Models
2.1 CAPM: Only one factor
The Capital Asset Pricing Model (Sharpe, Lintner, etc., 1960s) posits that:
The excess return of an asset depends only on its exposure to the market. High beta stocks have higher risk, and thus higher expected returns.
The problem: In empirical studies, many phenomena cannot be explained by CAPM. For example, small-cap stocks and low price-to-book ("cheap") stocks have long-term average returns that are higher than what CAPM predicts.
2.2 Fama–French Three-Factor Model (1993)
| Factor | Full Name | Construction |
|---|---|---|
| MKT | Market Excess Return | Market Portfolio Return − Risk-free Rate |
| SMB | Small Minus Big | Small-cap Portfolio − Large-cap Portfolio |
| HML | High Minus Low | High Book-to-Market (Value) Portfolio − Low Book-to-Market (Growth) Portfolio |
2.3 More factors
| Year | Model / Factor | Addition |
|---|---|---|
| 1993 | Jegadeesh–Titman | Momentum: Stocks that have risen a lot over the past 3–12 months continue to outperform for a period of time |
| 1997 | Carhart Four-Factor | Three factors + Momentum |
| 2015 | Fama–French Five-Factor | Added Profitability (RMW) and Investment (CMA) |
| Others | Quality, Low Volatility, Dividend, Short-term Reversal... | Academia and industry have successively proposed hundreds of "factors" (see The Multiple Testing and the Factor Zoo) |
2.4 Where does the factor premium come from?
This is one of the most debated issues in academia:
| Explanation | Viewpoint | Meaning |
|---|---|---|
| Risk Compensation | Small-cap and value stocks drop more severely during economic downturns; they bear extra risk and thus demand higher returns | The premium will persist long-term |
| Behavioral Bias | Investors are overly optimistic about growth stocks or overreact to bad news, leading to mispricing | The premium may diminish once widely recognized |
| Data Mining | Some "factors" are only effective in historical data by chance | They will disappear out-of-sample (see The Seven Sins of Backtesting) |
For example, the value factor performed poorly for a long time around 2010, triggering intense discussions on whether "the value factor is dead."
Layer 3: Perform a Factor Regression
3.1 Performing a factor regression with simulated data
We will first "create" a portfolio: we know its true exposures are Market 1.1, Size 0.5, and Value −0.3, with a monthly alpha of 0.1%, plus random noise. Then, we will use regression to see if we can recover these numbers.
import numpy as np, pandas as pd, statsmodels.api as sm
rng = np.random.default_rng(42)
n = 120 # 10 years of monthly data
f = pd.DataFrame({
"MKT": rng.normal(0.006, 0.045, n),
"SMB": rng.normal(0.002, 0.030, n),
"HML": rng.normal(0.003, 0.030, n),
})
true_alpha, true_beta = 0.001, {"MKT": 1.1, "SMB": 0.5, "HML": -0.3}
excess = true_alpha + sum(true_beta[k] * f[k] for k in f) + rng.normal(0, 0.02, n)
X = sm.add_constant(f)
res = sm.OLS(excess, X).fit()
print(res.params.round(3).to_dict())
print(res.tvalues.round(2).to_dict())
print("R2", round(res.rsquared, 3))
Output:
{'const': 0.002, 'MKT': 0.999, 'SMB': 0.459, 'HML': -0.375}
{'const': 0.8, 'MKT': 18.5, 'SMB': 7.39, 'HML': -6.1}
R2 0.803
3.2 How to read these results
| Result | Interpretation |
|---|---|
| MKT ≈ 1.0, t = 18.5 | The portfolio's exposure to the market is accurately estimated (true value 1.1, with estimation error) |
| SMB ≈ 0.46, HML ≈ −0.38 | The portfolio is biased toward small-cap and growth, consistent with the true settings |
| R² = 0.80 | 80% of the return volatility can be explained by the three factors |
| alpha = 0.2%/month, but t is only 0.8 | The true alpha is 0.1%/month, but given 10 years of data and this noise level, it is statistically indistinguishable from 0 |
The last line is the most important lesson: alpha is hard to prove. Factor exposures (beta) are usually estimated accurately because the factors themselves have high volatility; whereas alpha is a very small constant buried in a large amount of noise. Roughly speaking, the t-value of alpha grows with the square root of the sample length; a true but tiny alpha might require decades of data to confirm.
3.3 Engineering details for practical use
- Factor Data: Professor Kenneth French's website provides free factor return data for US and global markets, which is the standard source for academic research;
- Details in factor construction are important: How "small-cap" is defined, how often rebalancing occurs, and whether financial stocks are excluded will all affect the results;
- Time-varying exposure: A fund manager's style changes; use rolling window regression to observe changes in beta;
- Standard Errors: When return series exhibit autocorrelation and heteroscedasticity, use robust standard errors such as Newey–West.
res_robust = sm.OLS(excess, X).fit(cov_type="HAC", cov_kwds={"maxlags": 3})
Summary
| Layer | Key points |
|---|---|
| Concept | Returns = Factor Exposure × Factor Returns + alpha + Noise |
| Evolution | CAPM (Market) → Three-Factor (Size, Value) → Momentum → Five-Factor → Factor Zoo |
| Debate | Does the premium come from risk compensation, behavioral bias, or data mining |
| Practice | Beta is easy to estimate, alpha is hard to prove; use robust standard errors; pay attention to factor construction details |