Factor Portfolio Construction
Equal-weight, IC-weight and risk-parity are three answers to a single question — how much you trust your own factor estimates. With the full construction of Frazzini-Pedersen (2014) Betting Against Beta.
Suppose you have already accepted that markets reward certain characteristics — value, momentum, quality, low volatility, size — and decided to tilt toward them. The real decision is not there. It is in the next step: how to tilt.
Equal weight, weighting by information coefficient, and risk parity give three different portfolios. They look like three techniques, but they are three answers to one question: how much confidence you have in your own factor estimates. No confidence at all points to equal weight, which estimates nothing. Full confidence points to mean-variance optimization, which uses every expected return and covariance you have. Everything between the two is some form of shrinkage. That thread runs through this whole article, including the part at the end about capacity and crowding.
The second thread is that a factor is not an asset. It sounds like a truism, but the difficulties in factor construction, portfolio integration, capacity and crowding all grow out of it.
What a Factor Portfolio Actually Is
A factor portfolio is a long-short (or long-only) portfolio with exposure to a single characteristic and, ideally, near-orthogonality to every other factor.
Take value. Go long stocks with high book-to-market, short stocks with low book-to-market, scale to dollar-neutral and usually sector-neutral. The result has positive exposure to “value” and near-zero exposure to market, size and momentum. That portfolio’s return series is what every downstream analysis calls the value factor return.
It is worth walking through how it gets built, because every step leaves a mark on that series. First define the characteristic: book-to-market for value, twelve-month return skipping the most recent month for momentum, a profitability measure (ROE, gross profits) for quality, lagged volatility or beta for low volatility. Then sort assets by the characteristic at each rebalance date and cut them into deciles or quintiles. The standard long-short factor goes long the top bucket and short the bottom, with both legs scaled to dollar-neutral; a long-only version keeps the top bucket alone. The last step is neutralization — stripping out exposure to other factors (sector, market beta, size) so the factor comes out clean. It is optional, and skipping it means that what you think is a value study is a study of value plus a pile of sector bets.
The Fama-French (1993) value factor, HML, is built exactly this way, from a 2×3 double sort on size and book-to-market:
where and are small and big by market capitalization and and are value and growth by book-to-market. The two halves keep the long and short legs balanced along the size dimension, so the value portfolio does not quietly become a small-cap portfolio.
In practice you will not build these by hand; a factor library (Barra, Axioma, Bloomberg, MSCI, CRSP) hands you factor returns or exposures directly. Using someone else’s factors saves work, at the cost of moving every construction choice above out of your sight — how far the neutralization goes, how the buckets are cut, how often it rebalances — while all of it still flows into your backtest.
Three Ways to Allocate
Say you have settled on factors, with factor returns and their covariance matrix , and you want a factor-level weight vector .
The simplest answer is equal weight:
This portfolio uses no information about factor returns or covariances whatsoever, which makes it immune to estimation error — it estimates nothing — and gives it the lowest turnover of any approach. Its weaknesses are just as plain: it ignores factor strength, gives no credit for diversification, and treats a high-volatility factor and a low-volatility one identically.
It is still hard to beat out-of-sample. DeMiguel, Garlappi and Uppal (2009) showed this at the asset level: a range of optimization methods failed to beat 1/N out-of-sample, because optimization amplifies estimation error faster than it exploits signal. Carrying that conclusion over to the factor level is common practice, and worth stating honestly — that paper ran an asset-level comparison, the factor-level evidence is not equally strong, and the borrowing rests on typically sitting between 5 and 10 with a similarly shaped estimation problem.
The second answer lets the data speak: allocate by information coefficient (IC), the correlation between the factor signal and forward returns.
The justification is Grinold and Kahn’s (2000) fundamental law of active management:
where IR is the information ratio (annualized alpha over tracking error), IC is the factor’s information coefficient, and breadth is the number of independent bets per year. That equation is about where a single signal’s IR comes from. When you combine roughly uncorrelated factors, the quantity that adds up is the square of the IR:
and the weights that attain that bound, when the factors have comparable volatility and breadth, are proportional to IC itself rather than to IC squared. The two are easy to conflate: the square belongs to the combined IR, not to the allocation ratio. Allocating by IC squared piles capital onto whichever factor’s current estimate is highest, and the IC estimate is the noisiest object in this entire setup — re-estimate it often and you get weights that shake too hard to trade.
So the version people actually run shrinks toward equal weight:
with as the shrinkage parameter: falls back to equal weight, is pure IC weighting. Choosing is the explicit version of the thread running through this article — how much you believe your own IC estimates.
The third answer sidesteps return estimation entirely and works on risk alone, allocating by inverse volatility,
or, more strictly, demanding equal risk contributions,
This is risk parity applied to factors instead of assets. High-volatility factors get smaller allocations, so no single factor dominates the portfolio’s risk. Risk-parity factor portfolios have lower ex-ante volatility than equal-weight ones and usually a somewhat higher Sharpe, because risk is spread more evenly. They use one more estimate than equal weight — volatility — but volatility estimates far better than expected returns, which is why practitioners reach for this before mean-variance.
The Factor Covariance Matrix
Everything except equal weight needs , so estimating it is unavoidable.
The direct route is historical: the sample covariance of factor returns over some lookback window. It is the standard approach, and it fails when is not small relative to , because the optimizer will find and magnify precisely the estimation error in the sample matrix. Shrinkage is the standard patch: Ledoit-Wolf shrinkage toward , trading a little bias for a lot of variance. More aggressively, impose structure on — diagonal, single-factor, low-rank multi-factor — estimated by PCA or factor analysis. Fewer parameters means less error, at the cost of being systematically wrong if the structure is wrong.
For the ordinary case of between 5 and 20 with five or more years of monthly data, historical with Ledoit-Wolf shrinkage is the default.
A Worked Case: Betting Against Beta
The cleanest single case in factor investing is Frazzini and Pedersen’s (2014) Betting Against Beta. The rule fits in one sentence: long low-beta stocks, short high-beta stocks. The spread has positive expected return, low correlation with other factors, and shows up across decades and geographies.
The construction is equally direct. At each rebalance date, estimate beta from a rolling one-year regression of stock returns on market returns, sort stocks by beta and form deciles; go long decile 1 (lowest beta) and short decile 10 (highest beta), weighting by beta rank or equal-weighting within each decile; rebalance monthly. Because the two legs have different betas, each leg is then scaled by its beta so the portfolio is genuinely market-neutral — that scaling is what separates BAB from an ordinary low-volatility portfolio.
The economic intuition is leverage constraints. Mutual funds and pension funds have volatility targets to hit and limited freedom to borrow, so they reach for high-beta stocks instead. That demand pushes high-beta prices up and their expected returns down, leaving low-beta stocks underpriced. BAB harvests that mispricing. It is not a paradox about low risk paying more; it is a story about who is forbidden to use leverage.
The original paper reports a US BAB portfolio with a Sharpe ratio somewhere in the 0.7 to 0.8 range over a near-century sample, with the exact figure moving around depending on the sample window, the beta estimation window and construction details. Note the convention: that is before transaction costs. BAB turns over briskly and the short leg pays borrow, so the after-cost number is materially lower, by an amount that depends on your turnover assumptions and impact model. Recomputing it against your own cost model beats quoting anyone’s headline figure.
A few properties are worth carrying around. Its market beta is slightly negative, making it a defensive factor. Its correlation with value, momentum, size and quality is close to zero, so it contributes a lot of diversification inside a multi-factor portfolio. Its worst drawdowns are smaller than the market’s, and it tends to hold up in crises. On capacity, because both legs trade reasonably liquid ordinary stocks, it absorbs more money than most anomalies — but published dollar estimates vary widely in methodology, so do not treat any single figure as settled.
From Factor Weights to Asset Weights
Suppose you decide to allocate across value, momentum, quality, low volatility and BAB, and you have fixed by one of the methods above. The textbook move is mean-variance at the factor level: compute each factor’s expected return, volatility and Sharpe from history (a long lookback, ten years or more where available), estimate with shrinkage, and solve. If you do not believe your expected-return estimates, this degenerates gracefully into the minimum-variance solution.
import numpy as np
import pandas as pd
factor_returns = pd.read_csv('factor_returns.csv', index_col=0, parse_dates=True)
# Mean and covariance
mu_f = factor_returns.mean().values * 12 # Annualize
Sigma_f = factor_returns.cov().values * 12
# Add Ledoit-Wolf shrinkage
Sigma_shrunk = shrunk_cov(factor_returns) * 12
# Solve for MVO weights
from scipy.optimize import minimize
n_factors = len(mu_f)
def neg_sharpe(w):
ret = w @ mu_f
vol = np.sqrt(w @ Sigma_shrunk @ w)
return -ret / vol
constraints = [{'type': 'eq', 'fun': lambda w: w.sum() - 1}]
bounds = [(0, 1) for _ in range(n_factors)]
result = minimize(
neg_sharpe,
x0=np.ones(n_factors) / n_factors,
constraints=constraints,
bounds=bounds
)
w_f = result.x
print("Factor weights:", w_f.round(4))
A production system layers more on top: Black-Litterman for expected returns, constraints on factor exposures, transaction costs as a penalty term in the objective. The skeleton is the code above.
The catch is that is not something you can send to a broker. You trade stocks, not factors. Let the target factor exposure be (say 0.5 value, 0.3 momentum, 0.2 quality) and let be the matrix of asset-level factor exposures; you need weights satisfying . That system is underdetermined — vastly exceeds , and infinitely many portfolios produce the same exposures — so you pin the solution down with a regularizer:
where is a benchmark, usually market-cap weights. The solution is the portfolio closest to the benchmark in L2 norm that still hits the target exposures — a quadratic program with linear constraints, solvable by any standard solver. Tracking error is governed by the strength of the L2 penalty, which is where “express these factor views” and “do not stray far from the benchmark” get reconciled inside one expression.
In a real pipeline, several layers precede that integration step: define four to eight factors with a clear economic rationale, build the factor portfolios with the bucket-spread construction above, compute each factor’s return series, estimate means, volatilities, Sharpes and the correlation matrix, choose an allocation method, optionally overlay bottom-up stock views, and then apply the constraints — maximum factor exposure, sector caps, turnover limits — at integration time. Only then do you have per-asset weights.
Which Allocation Method to Use
There is no universal answer among equal weight, IC weight, risk parity and mean-variance, but a few observations hold up.
Equal weight is the safest default, respectable across most periods and factor universes, at the price of treating strong and weak factors alike. IC weighting works only when your IC estimates are stable, and IC is usually time-varying — which is its most common failure mode in practice. Risk parity earns its keep when factor volatilities differ substantially; most equity factor portfolios have similar volatility, so the gap between it and equal weight is often too small to justify the extra estimate. Mean-variance needs good expected-return estimates, and good expected-return estimates are rare.
For most practitioners the answer is a blend:
with and something like , , as reasonable values. This is not fence-sitting. You do not know which method will be right over the next decade, and diversifying across methods is the same kind of regularization as diversifying across factors.
Which Factors Belong in the Set
The literature has produced dozens of factors. Some are real; a large share are probably data-mined.
Following Harvey, Liu and Zhu (2016) and the work that came after, the robust set includes the market (the equity premium, stocks over bonds), size (SMB, small beating large, especially before 1980), value (HML, high book-to-market beating low), momentum (UMD, winners continuing to win over three to twelve months), quality (RMW and CMA, profitable firms beating unprofitable ones), and low volatility with BAB (low-beta stocks earning higher risk-adjusted returns than high-beta stocks). Across asset classes there are also term (long bonds beating short, the term premium), credit (lower-rated bonds beating higher-rated, the credit premium) and carry (high-carry currencies and assets earning positive returns).
A second tier is real but less reliable: investment (low-investment firms beating high-investment ones), profitability (gross profits over assets predicting returns), and liquidity (illiquid stocks earning a premium). These hold up in some samples and evaporate in other geographies or periods.
Most of the rest are probably false positives. Calendar effects — January, turn-of-month and their relatives — largely fail out-of-sample. Chart patterns from technical analysis are noise in any market with a modicum of efficiency. And published factors with -statistics below 3 are likely to be noise, which is not an offhand remark: Harvey, Liu and Zhu argue exactly that, given how many factors the literature collectively tried, the conventional hurdle is far too loose and the right threshold is around 3. The same ruler applies to your own factor search.
Capacity, Timing and Crowding
Everything above treats factor returns as given. Once you trade them, you are changing them.
Capacity comes first. Every factor holds a limited amount of money, and returns decay faster the more capital chases them — the standard arbitrage equilibrium story, where the inefficiency shrinks as arbitrageurs pile in. Relative ordering is more trustworthy than absolute figures: high-turnover factors (momentum above all) have visibly less capacity than low-turnover ones (value, quality, low volatility), and factors that depend on small or illiquid names (size, liquidity) have the least. Published dollar capacity estimates diverge sharply because they hinge on turnover assumptions, impact models and how much decay you are willing to accept, so read the methodology before quoting a number. For most institutional allocators capacity does not bind on the mainstream factors; on size and liquidity it does.
Timing is the second question, and the answer is deflating: it is hard. Factor returns have low autocorrelation and high variance, and the signal-to-noise ratio does not support most timing attempts. There is some evidence for time-series momentum at the factor level — factors that have done well recently tend to keep doing well for a few months — but the effect is small, and the overwhelming majority of factor returns come from the long-run premium rather than from timing. In practice most institutional allocators run static factor weights, rebalancing to target on a schedule and not attempting to time.
Crowding is the third and the hardest to quantify. As more investors hold similar factor portfolios, those portfolios become more correlated with each other, and they exit at the same time. The August 2007 quant quake is the canonical case: many quantitative equity funds held closely overlapping factor portfolios, and the selling pressure from one fund deleveraging propagated to everyone. To monitor it, you can look at holdings overlap among major factor ETFs, short interest in the names a factor is long or short, and the factor’s own concentration — how much of the value factor’s exposure is parked in a single sector, for instance. All of these are crude proxies. Crowding is a known risk, not a precisely measurable one, and it should not be dressed up as the latter.
Three Easy Mistakes
The first is treating factors as asset classes. You cannot buy “value” the way you buy an S&P 500 ETF. You buy a portfolio of stocks exposed to value, and that portfolio carries tracking error, transaction costs and capacity constraints — none of which are visible in the factor return series.
The second is ignoring decay. Once a factor is published, its return tends to fall as arbitrage capital arrives. The value factor’s premium was clearly larger in the decades before it was widely published than it has been since. So factor portfolios need periodic re-evaluation, with weight placed on out-of-sample evidence rather than on the original paper’s sample.
The third is confusing factor exposure with factor return. Holding a portfolio with high value exposure does not mean you earned the value factor’s return: residual risk, sector exposure and unintended momentum exposure all leak into your return stream. Attributing realized returns back to factors is real work, not a line of exposure numbers in a report.
When It Does Not Work
Factor investing has had long stretches of underperformance. The 2010s were brutal for value as growth ran away with the decade; momentum suffered a violent crash when the market turned in March 2009; low volatility routinely lags in strongly risk-seeking years.
Factor premia are not constants. They come and go. The long-run mean is positive and any given year may be something else entirely. This is the standard criticism of factor investing: it works over the long run and feels terrible over the short run, and the investors who abandon it during a drawdown are precisely the ones who miss the premium that follows.
The honest response is that factors are real and their returns are noisy. Diversifying across several factors reduces the noise, and rebalancing discipline is how the long-run premium actually gets collected. Neither of those makes the drawdowns comfortable. They just keep discomfort from turning into capitulation.
Literature
- Fama & French (1993). “Common Risk Factors in the Returns on Stocks and Bonds.” Journal of Financial Economics 33(1): 3-56. The three-factor model.
- Carhart (1997). “On Persistence in Mutual Fund Performance.” Journal of Finance 52(1): 57-82. Adds momentum.
- Frazzini & Pedersen (2014). “Betting Against Beta.” Journal of Financial Economics 111(1): 1-25. The BAB factor.
- Grinold & Kahn (2000). Active Portfolio Management. McGraw-Hill. The fundamental law of active management.
- Asness, Frazzini, Israel & Moskowitz (2015). “Diving into the Cross Section of Returns.” SSRN Working Paper. Multi-factor analysis.
- Novy-Marx (2013). “The Other Side of Value: The Gross Profitability Premium.” Journal of Financial Economics 108(1): 1-28.
- Hou, Xue & Zhang (2015). “Digesting Anomalies: An Investment Approach.” Review of Financial Studies 28(3): 650-705.
- Harvey, Liu & Zhu (2016). “…and the Cross-Section of Expected Returns.” Review of Financial Studies 29(1): 5-68. Multiple-testing correction.
Next article: transaction-cost-aware optimization — the neglected 30% of MVO, which is turnover.