β ITSJUSTBETA.COM

Part 14 / 18 · Updated July 2026

Alpha Research: What Can't the Model Explain?

On this page

The jobs so far use the model to measure and shape a portfolio. This one points it at a candidate return-predicting signal and asks a single question: is this alpha, or a factor you already own? The factor model is the cleanest available test, and running it is cheap insurance against paying for beta and booking it as skill.

14.1 Alpha is what the model cannot explain

A signal is only alpha to the extent the risk model cannot span it. Write the alpha forecast as a vector α\alpha over the universe and decompose it against the exposure matrix:

α=Xβα+α.\alpha = X\beta_\alpha + \alpha_\perp.

The first term is the part of the signal that lives in factor space: a fixed combination of value, momentum, industries, and the rest. The risk model already prices it, Chapter 12 already optimizes against it, and the factor-return history already tells you what it pays. The second term α\alpha_\perp is orthogonal to every factor. It is the only part that is genuinely new information about specific returns.

This is the same decomposition that drives the alpha–risk misalignment problem in §12.4. There the worry was an optimizer levering α\alpha_\perp blindly. Here the worry is the opposite mistake: mistaking XβαX\beta_\alpha for α\alpha_\perp, paying a research premium for a signal whose backtest was carried by a value tilt you could have bought through a cheap factor product.

14.2 The spanning test

Regress the standardized signal exposure aa (one number per stock, z-scored like any style descriptor, Chapter 3) on the factor exposures:

a=Xβα+u,spanned fraction=1Var(u)Var(a).a = X\beta_\alpha + u, \qquad \text{spanned fraction} = 1 - \frac{\operatorname{Var}(u)}{\operatorname{Var}(a)}.

The fitted part is what the existing factors reproduce. The residual uu is the candidate’s contribution. Three readings come straight off this regression:

  • Spanned fraction (R2R^2). High R2R^2 means the signal is a repackaging of known factors. This is the variance-inflation-factor idea from Chapter 16 pointed at a candidate alpha instead of a candidate risk factor: VIF=1/(1R2)\text{VIF} = 1/(1-R^2).
  • Per-factor correlations. Which factors it loads, and how much. A momentum signal that turns out 0.6-correlated with size is carrying an unintended bet someone has to own.
  • The residual uu. Standardize it and you have the orthogonalized signal, the part worth testing on its own.

The residual is not automatically alpha. It is what is left after removing the factors the model happens to carry. A signal can still be spanned by common risk the model does not yet name, which is why the residual-clustering diagnostics of Chapter 15 and the factor-admission process of Chapter 16 sit next to this one.

14.3 Worked example: a value-quality signal that is mostly value

A research team proposes a “value-quality composite” on the MiniModel, pitched to the running book’s manager as a new alpha source: cheap names scored up, recent winners scored down, plus genuine stock-specific judgment. A reader of Chapter 9 will recognize the recipe: it is the manager’s own value tilt, with the accidental anti-momentum exposure built in on purpose this time. Concretely the raw descriptor is book-to-price minus a momentum penalty plus a per-stock idiosyncratic term, standardized to the candidate exposure aa. Regressing aa on XX:

QuantityValue
corr(aa, VALUE)+0.82
corr(aa, MOM)−0.44
corr(aa, SIZE)−0.50
spanned fraction (R2R^2 of aa on XX)0.884
residual (true-alpha) share0.116

Most of the “new” signal is the VALUE factor wearing a different label, with an anti-momentum tilt and an unintended small-cap bet riding along. Only 11.6% of its cross-sectional variation survives the factors.

Now test it as a return predictor. Build the dollar-neutral long–short portfolio whose weights are proportional to the signal (gross 1) and decompose its month-1 return through the factor model:

0.63%raw signal=0.46%factor+0.17%specific.\underbrace{-0.63\%}_{\text{raw signal}} = \underbrace{-0.46\%}_{\text{factor}} + \underbrace{-0.17\%}_{\text{specific}}.

The signal portfolio’s realized exposures are VALUE +1.02, MOM −0.58, SIZE −0.82: three known bets. Three-quarters of its return is the factors paying off (in this month, against it). Strip them and the information coefficient against month-1 returns falls from −0.49 to −0.13. The residualized portfolio returns −0.34% with, by construction, zero factor contribution.

The sign is incidental, the month is one draw. The point is the shrinkage: an apparent IC near 0.5 collapses to 0.1 once the value and momentum content is removed. A research process that backtested the raw composite would have congratulated itself on the VALUE factor.

14.4 Backtest the residual, not the raw signal

The discipline follows from §14.1: evaluate α\alpha_\perp, not α\alpha.

  • Residualize first. Orthogonalize the signal against the factor exposures every period, then compute the IC, the decile spreads (the return gap between the top and bottom tenth of stocks ranked by the signal), the turnover on the residual. Whatever survives is not attributable to factors you can buy elsewhere.
  • Attribute the backtest. Run the candidate’s historical long–short return through the performance attribution of Chapter 10. A signal whose paper Sharpe is mostly factor contribution is a factor product, priced accordingly.
  • Size with the residual. The Grinold rule α=ICσz\alpha = \mathrm{IC}\cdot\sigma\cdot z from §12.5 should use the post-residualization IC. Using the raw IC double-counts the factor bet the optimizer will also take from the risk model.

A practical refinement: orthogonalizing against contemporaneous exposures can leak a little forward information if exposures are computed from data overlapping the return window. Use start-of-period exposures, the same lag discipline the model itself runs on (Chapter 17).

14.5 From clean signal to portfolio

A residual that survives is alpha the risk model does not see, which is the misalignment setup of §12.4. The clean hand-off is to stop treating it as unmodeled: add the signal as a factor in a custom model (Chapter 16), so the risk model prices bets on it and the optimizer can no longer lever it for free. The signal earns a factor row; the leftover after that regression is the next candidate. Alpha research and model extension are the same loop run at different cadences.

14.6 Hygiene: the signal you found by looking

The spanning test answers “is it new?” It does not answer “is it real?” With hundreds of descriptors to try, some will clear any in-sample bar by luck, the factor-zoo and replication problem of Chapter 17. Two rules keep the search honest:

  • Economic rationale before fit. State the mechanism, a risk premium, a structural flow, a behavioral pattern, before looking at the backtest. This is the multiple-testing defense from Chapter 16’s admission criteria, and it applies to alphas with more force than to risk factors because the payoff to data-mining is larger.
  • Out-of-sample residual IC. The number that matters is the residualized IC on data the signal was not tuned on. Everything in-sample is a hypothesis.

14.7 Summary

  • A signal is alpha only in the part the risk model cannot span: α=Xβα+α\alpha = X\beta_\alpha + \alpha_\perp. Regress the signal on the factor exposures and read the spanned fraction.
  • In the mini example a “value-quality” candidate is 88% spanned, mostly VALUE with an unintended small-cap tilt; its IC falls from −0.49 to −0.13 after residualizing.
  • Backtest, attribute, and size the residual, not the raw signal. A paper Sharpe built on factor contribution is a factor product.
  • A residual that survives out of sample is best handled by adding it as a factor (Chapter 16), closing the loop with model extension.
  • Spanning answers “is it new,” not “is it real.” Economic rationale first, out-of-sample residual IC second.

Try it: in section 10 of mini_example.py, double the per-stock idiosyncratic term (multiply the fixed array by 2) and rerun. The spanned fraction falls from 0.884 to about 0.73: more genuine stock-specific judgment, less repackaged factor. The spanning test rewards exactly the ingredient research is supposed to add.