The Frisch-Waugh-Lovell Theorem
A result showing that a coefficient in a multi-variable regression can be obtained by first stripping ("partialling out") every other variable's influence from both the target and the variable of interest, then running a simple one-variable regression on what's left — the same answer either way.
Prerequisites: The Classical Linear Regression Assumptions, Multicollinearity
A quant regressing stock returns on five factors wants to understand what the momentum coefficient really means, isolated from the other four factors it's correlated with. Running the full five-variable regression gives an answer, but it's a black box — you can't see how the momentum coefficient is actually being purified of the other factors' influence. The Frisch-Waugh-Lovell theorem says you don't have to take that on faith: you can get the exact same coefficient by first "cleaning" both the returns and the momentum factor of everything the other four factors explain, and then running a plain single-variable regression on the leftovers. Same number, but now you can see exactly what's driving it.
An analogy: correcting for height before comparing weight
Suppose you want to know whether weight is related to exercise habits, but taller people tend to weigh more regardless of exercise, and you want that height effect out of the way first. One approach: regress weight on both height and exercise together, and read off the exercise coefficient. An equivalent approach: first regress weight on height alone and keep only the leftover ("weight after removing what height explains"), then separately regress exercise on height alone and keep its leftover too, and finally regress the leftover weight on the leftover exercise. Both routes give the identical coefficient on exercise — the second route just makes visible, step by step, exactly what "controlling for height" is doing to both variables before they're compared.
The mechanics, one symbol at a time
Consider a regression of on two blocks of regressors, (the variable of interest) and (all the other controls): . Let be the residuals from regressing on alone (the part of that can't explain), and let be the residuals from regressing on alone (the part of that can't explain). The Frisch-Waugh-Lovell theorem states:
which is exactly the OLS slope from a simple regression of on alone — and it is numerically identical to the you'd get from the original full multi-variable regression. In plain English: strip out from both and everything the other controls already explain, and whatever relationship remains between the two leftovers is the multi-variable coefficient — nothing is lost or changed by doing it in two simple steps instead of one complicated one.
Worked example 1: two factors by hand
A small dataset has 5 months of returns , a momentum factor , and a value factor . Suppose regressing on gives residuals (the part of momentum not explained by value), and regressing on gives residuals (the part of returns not explained by value). The FWL coefficient on momentum is:
Running the full two-variable regression of on and together on the original data would produce this exact same 1.383 coefficient on momentum — FWL just made the computation transparent by isolating the piece of each variable that value doesn't already explain.
Worked example 2: what "controlling for" actually removes
A researcher regresses a strategy's daily P&L on trade count while controlling for market volatility (a known driver of both). Before partialling out volatility, the raw correlation between P&L and trade count looks strongly positive — but much of that is because high-volatility days independently produce both more trades and more P&L opportunity. After regressing both P&L and trade count on volatility alone and keeping only the residuals — the part of each variable volatility can't explain — the leftover relationship between residual P&L and residual trade count shrinks to a much smaller, more modest coefficient. FWL makes explicit that the "controlling for volatility" step is literally the act of computing these two residual series before comparing them; the modest leftover coefficient is what remains of the trade-count effect once the shared driver, volatility, has been subtracted out of both sides.
Picture running this on the residuals: drag points representing against (already stripped of the other controls) and watch the fitted slope — that slope is exactly the multi-variable coefficient the full regression would report.
What this means in practice
Frisch-Waugh-Lovell is the theoretical justification behind "controlling for" language in factor models, event studies, and panel regressions with fixed effects: demeaning a variable within groups (see Panel Data and Fixed Effects) is a special case of FWL where is a set of group-indicator dummy variables, and the demeaned regression gives the same coefficients as including the dummies explicitly. It's also a practical computational shortcut — when contains hundreds of fixed-effect dummies, sweeping them out via residualization is far cheaper than inverting a huge design matrix directly, and many statistical packages use exactly this trick under the hood.
The coefficient on one variable in a multi-variable regression is identical to the coefficient from a simple regression of the residualized outcome on the residualized variable, after both have had every other regressor's explanatory power removed — "controlling for" other variables literally means partialling them out of both sides before comparing what's left.
The classic mistake is assuming residualizing only the variable of interest, but not the outcome, still gives the right answer — or skipping the second residualization step and regressing against the raw . FWL requires both and to be stripped of 's influence; residualizing only one side produces a different, generally wrong coefficient, because the leftover correlation with still contaminates whichever side wasn't cleaned.
Related concepts
Practice in interviews
Further reading
- Frisch & Waugh, 'Partial time regressions as compared with individual trends', Econometrica 1933
- Lovell, 'Seasonal adjustment of economic time series', JASA 1963