Arbitrage Pricing Theory and Multi-Factor Models › Factor Risk Premia: Evidence and Interpretation
Quantitative FinanceAll chapters Arbitrage Pricing Theory and Multi-Factor Models › Factor Risk Premia: Evidence and InterpretationOne section · Sections in this chapter10 / 15 ↓
Reading tools Definitions & inline links
Choose your expertise level to adjust how many terms are explained. Beginners see more tooltips, experts see fewer to maintain reading flow. Hover over underlined terms for instant definitions.
Article links
Make inline references clickable
A central question in factor investing is whether factor exposures are compensated with higher expected returns. Let's examine the historical evidence for factor risk premia.
# Download longer history for factor premium analysis
# ff_long = pdr.DataReader('F-F_Research_Data_Factors', 'famafrench',
# start='1963-07-01', end='2023-12-31')[0] / 100
# Add momentum factor
# ff_mom = pdr.DataReader('F-F_Momentum_Factor', 'famafrench',
# start='1963-07-01', end='2023-12-31')[0] / 100
# ff_mom.columns = ['MOM']
# Combine
# factors_full = ff_long.join(ff_mom, how='inner')
# factors_full.columns = ['MKT', 'SMB', 'HML', 'RF', 'MOM']
# Synthetic long-term data for demonstration (uncomment above for real data)
np.random.seed(42)
long_dates = pd.date_range(start="1963-07-01", end="2023-12-31", freq="ME")
factors_full = pd.DataFrame(
np.random.normal(0.005, 0.04, (len(long_dates), 5)), index=long_dates
)
factors_full.columns = ["MKT", "SMB", "HML", "RF", "MOM"]# Calculate statistics for the full sample
factor_list = ["MKT", "SMB", "HML", "MOM"]
full_stats = pd.DataFrame(index=factor_list)
full_stats["Mean (Annual %)"] = factors_full[factor_list].mean() * 1200
full_stats["Std (Annual %)"] = (
factors_full[factor_list].std() * np.sqrt(12) * 100
)
full_stats["Sharpe Ratio"] = (
full_stats["Mean (Annual %)"] / full_stats["Std (Annual %)"]
)
full_stats["t-statistic"] = (
factors_full[factor_list].mean()
/ factors_full[factor_list].std()
* np.sqrt(len(factors_full))
)Factor Risk Premia (1963-2023)
============================================================
Mean (Annual %) Std (Annual %) Sharpe Ratio t-statistic
MKT 7.48 13.91 0.54 4.18
SMB 5.24 14.38 0.36 2.83
HML 5.91 13.64 0.43 3.37
MOM 9.91 14.04 0.71 5.49All four factors show positive average returns over the full sample. The t-statistics help assess statistical significance: values above 2.0 suggest the premium is unlikely due to chance. The market premium is highly significant, as expected. SMB and HML show meaningful premia, though with lower significance than the market. Momentum displays a strong premium with high statistical significance.

Rolling Factor Performance
Factor premia are not constant over time. Let's examine how factor performance has varied across different periods.
# Calculate rolling 5-year Sharpe ratios
window = 60 # 5 years of monthly data
rolling_mean = factors_full[factor_list].rolling(window=window).mean() * 12
rolling_std = factors_full[factor_list].rolling(window=window).std() * np.sqrt(
12
)
rolling_sharpe = rolling_mean / rolling_std
The rolling analysis reveals substantial time variation in factor performance. Some observations:
- The market factor shows persistent positive Sharpe ratios but with significant variation
- SMB performance was strong in the 1970s-1980s but weakened substantially after 2000
- HML showed strong performance through the 1990s but turned negative in the 2010s
- Momentum displays high volatility, with occasional sharp negative drawdowns (for example, 2009)
This time variation raises important questions: Do factor premia persist because they compensate for risk, or were historical patterns data-mined anomalies that have since been arbitraged away?
Economic Interpretations of Factor Premia
Several theories attempt to explain why factor premia exist. Understanding these theories helps practitioners form views about whether premia will persist in the future.
Risk-based explanations argue that factors proxy for systematic risks. Small stocks may earn higher returns because they are more vulnerable to economic downturns. When the economy contracts, small firms often lack the financial resources, customer diversification, and market power to weather the storm. Investors who hold small stocks bear this recession risk and demand higher expected returns as compensation. Value stocks may be riskier because they often represent distressed firms or those facing structural challenges. A company with a high book-to-market ratio may be cheap because investors doubt its future prospects. Holding such companies exposes investors to the risk that these doubts prove justified.
Behavioral explanations suggest factors arise from investor biases. Investors may overpay for glamorous growth stocks, creating the value premium. The allure of companies with exciting products and rapid growth may cause investors to extrapolate past success too far into the future, bidding prices above fundamental value. Momentum may reflect slow information diffusion or herding behavior. When good news emerges, it may take time for all investors to learn and process the information, causing prices to adjust gradually rather than instantaneously.
Limits to arbitrage explanations note that even if mispricings exist, arbitraging them is costly and risky. Short-selling constraints, career risk for fund managers, and factor crash risk may prevent full correction of factor-related mispricings. A fund manager who shorts overvalued growth stocks might be correct in the long run but could face client redemptions if the strategy underperforms in the short run. This career risk limits the capital that flows to correct mispricings.
The debate continues, but the practical implication is clear: factor exposures matter for understanding portfolio risk, regardless of whether the premia persist.