Here is the question this whole module has been building toward, and the one every signal must survive before it is trusted with real capital: given this period's factor score and this period's forward return (the return realized after the score was known, never the same-period return, which would be look-ahead in miniature), how strongly does the score's cross-sectional ranking correlate with the ranking of what actually happened next? That correlation, computed period by period, is the Information Coefficient (IC), the working evaluation tool this module owns under C-3, built directly on QM1.01's correlation formula. Two flavors matter:
Pearson IC vs rank IC, with measured values
- Pearson IC: the ordinary linear correlation coefficient (QM1.01's formula, applied here to a factor score against a forward return, both drawn from the same period's cross-section).
- Rank IC (Spearman): first replace every value with its within-period rank (tied values share the average of the ranks they span), then compute the Pearson correlation of the two rank series. Rank IC only cares about ordering, not magnitude, so it is materially more robust to a handful of extreme outliers than Pearson IC, one wildly large factor score or return cannot single-handedly inflate a rank-based correlation the way it can a raw one.
Advertisement
Real numbers, from this program's bundled synthetic-factor-panel (60 fictional tickers, 48 monthly cross-sections, each row carrying a pre-computed value/momentum/quality/low-vol score and the realized forward return, built specifically so factor-evaluation exercises have a genuine, reproducible relationship to recover, seed 1011). Measuring Pearson IC in every one of the 48 months and averaging: momentum's mean IC is +0.1209, value's is +0.1013, quality's is +0.0805, all clearly, repeatably positive. And then the honest result this module promised in its opening: low-volatility's mean IC in this exact panel is −0.0012: indistinguishable from zero. Measured, not assumed. A factor's name told you nothing; only computing its IC did. Hold onto that result, the sections on decay and turnover return to it from two more angles, and it is squarely this module's central lesson about what evaluation is actually for.
What is the quantile spread?
A useful, more intuitive complement to IC, worth naming even though this module does not grade it as a separate function: the quantile spread, sort a period's names by factor score, take the average forward return of the top quintile (fifth) and the bottom quintile, and subtract. It answers a plainer question than a correlation coefficient does: "if I had actually bought the top bucket and sold the bottom one, how much did that spread earn?" Averaged across the same 48 months, the spreads read value +0.0170, momentum +0.0149, quality +0.0125, low-volatility −0.0003, the same ranking, and the same honest near-zero result for low-volatility, as the IC numbers above, because IC and quantile spread are two different windows onto the same underlying relationship, not two independent pieces of evidence. When the two disagree noticeably (a real IC but a weak spread, or vice versa), that gap is itself worth investigating rather than picking whichever number tells the story you wanted.
QD1.02-e06 grades information_coefficient(factor, fwd_return, method) against real 20-name slices of the bundled panel, one hidden test in Pearson mode, one in Spearman mode.