Cross-Sectional Factor Return Regressions
Instead of regressing one stock's returns on factors over time, regress every stock's return in a single month on its factor exposures across stocks. Do that every month, and the slopes become a time series of factor returns.
Prerequisites: Fundamental vs Statistical Factor Models, The Classical Linear Regression Assumptions
A time-series regression asks: for one stock, over many months, does its return move with the market factor? A cross-sectional factor regression flips both axes: it asks, in one month, across many stocks, does a stock's known characteristic (its size, its value score, its momentum) explain why some stocks did better than others that month? Run that same cross-sectional regression again next month, and the next, and you get a time series of "factor returns," the payoff each factor delivered, month by month, which is exactly the machinery underneath most commercial risk models and most academic asset-pricing tests.
The analogy
Imagine a teacher grading one exam, sat by an entire class on the same day. The teacher does not ask "did this one student improve over the semester," that is a different, longitudinal question. The teacher asks, across all students that day, did the students who studied more score higher: one snapshot, many students, one slope relating a known trait (hours studied) to an outcome (score). A cross-sectional factor regression is that same snapshot exercise, but repeated every month for every stock, with characteristics like "value score" or "size" standing in for "hours studied."
Building the regression
For a given month , run an ordinary least-squares regression across all stocks:
where is stock 's return in month , and are stock 's known, already-measured exposures to each characteristic (its size score, its value score, and so on), fixed inputs to this regression, not the thing being estimated. What is being estimated here are the terms, the regression's fitted coefficients for month , which are read off as that month's factor returns. In words: hold every stock's known "how big is its value tilt" fixed, and let the regression find the single number, this month's slope, that best explains why value-tilted stocks outperformed or underperformed everyone else this specific month. Do this fresh every month, using a brand new cross-section of returns each time, and stack the resulting estimates into a time series, one factor-return observation per month.
The classic two-stage version of this idea, Fama–MacBeth, runs exactly this cross-sectional regression every period and then averages the resulting series of coefficients over time to get one final factor-return estimate with a standard error computed from the time-series variation of those monthly slopes, not from the cross-sectional regression's own reported standard errors (see Fama-MacBeth Regression for why that distinction matters enormously for statistical validity).
Picture each point on this scatter as one stock in one month: horizontal position is the stock's known factor exposure, vertical position is its realized return that month. The fitted line's slope is that month's estimated factor return. Run the same picture next month with a fresh cloud of points and a new slope.
A cross-sectional regression estimates a return, not a risk exposure. The exposures () are the known inputs; the factor return is the output, re-estimated fresh every single period from that period's cross-section of stock returns.
Worked example 1: one month, three stocks
Three stocks have known value-score exposures (high, neutral, low value tilt) and this month's realized returns are . Fit a simple regression through these three points.
Using the standard least-squares slope formula on this tiny sample: mean , mean . Deviations: : ; : . Slope .
So the estimated value factor return that month is roughly a slope of percentage points of return per unit of value exposure, meaning a stock with one full unit more value tilt earned about 2.29% more that month, holding the (small, three-stock) cross-section fixed.
Worked example 2: building the time series
Repeating this exercise for three consecutive months gives estimated value-factor returns of , , . Averaging: per month, an estimate of the average monthly premium to holding value exposure. The standard error of that average is computed from how much themselves vary across the three months (their sample standard deviation divided by ), not from any single month's regression, which is exactly the Fama–MacBeth insight: statistical significance of a factor premium comes from consistency across many independent monthly snapshots, not from how tightly one month's cross-section fits.
What this means in practice
This machinery underlies commercial multi-factor risk models (Barra, Axioma and similar), which run a cross-sectional regression like this every day or week to produce a live factor-return series, and it underlies most published tests of "does factor X earn a premium," where the resulting time series is tested for a positive, statistically significant mean.
Cross-sectional regressions run separately each period ignore that the resulting estimates are typically correlated with each other over time (factor returns cluster, just like ordinary asset returns do), and they ignore that the same stocks appear in every period's cross-section, so the residuals are not independent across months for a given stock either. Naively treating each month's regression as an independent draw, without the Fama–MacBeth-style correction to standard errors, routinely overstates statistical significance and is one of the most common errors in applied factor research (see Fama-MacBeth Regression and The Replication Crisis in Factor Research).
Related concepts
Practice in interviews
Further reading
- Grinold & Kahn, Active Portfolio Management (Ch. 3)
- Fama & MacBeth (1973), Risk, Return, and Equilibrium: Empirical Tests