Factor Neutralization of Alpha Signals

Linear Algebra · Hard · Free problem

You have $m$ assets at time $t$. Each asset carries an alpha score $s(t) \in \mathbb{R}^m$ -- your raw signal before any risk adjustments. You also have a factor exposure matrix $B(t) \in \mathbb{R}^{m \times k}$, where each column is a factor (market beta, sector dummies, size, etc.).

You want to strip out any linear exposure to these factors so your positions aren't just a disguised bet on the market or a sector tilt.

  1. Define the neutralized signal $\tilde{s}(t)$ precisely. Specify the projection (including any weighting matrix $W$) and write out the formula.
  2. Prove that $\tilde{s}(t)$ is orthogonal to the column space of $B(t)$ under your chosen inner product.
  3. Discuss the trade-off: when does neutralization hurt you? When is it essential?

Hints

  1. Think of this as a projection problem: you want the component of $s(t)$ that lies in the orthogonal complement of the factor space. What operation produces that residual?
  2. Weighted OLS regression of $s(t)$ on $B(t)$ with weight matrix $W$ gives residuals $\tilde{s}(t) = s(t) - B(t)\hat{\beta}(t)$. The normal equations are the key to the orthogonality proof.
  3. To prove $\tilde{s}(t) \perp_W \text{col}(B(t))$, compute $B(t)^\top W \tilde{s}(t)$ directly and substitute the definition $\hat{\beta}(t) = (B^\top WB)^{-1}B^\top W s(t)$. It cancels to zero by algebra.

Worked Solution

How to Think About It: The naive approach is to just subtract the mean or demean by sector. But that only removes the intercept, not the full linear factor exposure. The real question is: if you ran a cross-sectional regression of $s$ on $B$, what's the residual? That residual is your factor-neutral signal -- it's the part of your alpha that can't be explained by any linear combination of the factors. This is a projection problem, not a trading problem. The key tension is that your "alpha" might actually partly be a factor premium in disguise -- and once you project it out, you've thrown away that part. Whether that's good or bad depends on whether you want pure idiosyncratic exposure or are comfortable holding factor risk.

Key Insight: Neutralization is exactly the orthogonal projection of $s(t)$ onto the complement of $\text{col}(B(t))$ under the inner product induced by a positive definite weight matrix $W$. The residual from a weighted OLS regression of $s$ on $B$ is always orthogonal to $\text{col}(B)$ under that same inner product -- this is a fundamental property of OLS residuals, not a coincidence.

The Method:

*Step 1: Choose a weighting matrix.*

Let $W \in \mathbb{R}^{m \times m}$ be a positive definite diagonal matrix of asset weights. Common choices: - $W = I$ (equal weighting, standard OLS) - $W = \text{diag}(1/\sigma_i^2)$ (inverse variance weighting -- downweights volatile assets) - $W = \text{diag}(\text{market cap}_i)$ (cap-weighted, most common in equity factor models)

The choice of $W$ defines the inner product $\langle u, v \rangle_W = u^\top W v$.

*Step 2: Define the neutralized signal.*

Run a weighted OLS regression of $s(t)$ on $B(t)$: $\hat{\beta}(t) = \bigl(B(t)^\top W B(t)\bigr)^{-1} B(t)^\top W s(t)$

assuming $B(t)^\top W B(t)$ is invertible (i.e., no perfectly collinear factors under $W$).

The neutralized signal is the vector of residuals: $\tilde{s}(t) = s(t) - B(t)\hat{\beta}(t) = \left(I - B(t)\bigl(B(t)^\top W B(t)\bigr)^{-1} B(t)^\top W\right) s(t)$

Let $M = I - B(t)\bigl(B(t)^\top W B(t)\bigr)^{-1} B(t)^\top W$. This is the annihilator matrix (the residual maker). Then $\tilde{s}(t) = M s(t)$.

*Step 3: Prove orthogonality under the $W$-inner product.*

We need to show that $\tilde{s}(t)$ is $W$-orthogonal to every column of $B(t)$, i.e., $B(t)^\top W \tilde{s}(t) = 0$.

Substitute directly: $B(t)^\top W \tilde{s}(t) = B(t)^\top W \bigl(s(t) - B(t)\hat{\beta}(t)\bigr)$ $= B(t)^\top W s(t) - B(t)^\top W B(t) \hat{\beta}(t)$

Now substitute the definition of $\hat{\beta}(t)$: $= B(t)^\top W s(t) - B(t)^\top W B(t) \cdot \bigl(B(t)^\top W B(t)\bigr)^{-1} B(t)^\top W s(t)$ $= B(t)^\top W s(t) - B(t)^\top W s(t) = 0$

This holds for every column of $B(t)$, so $\tilde{s}(t) \perp_W \text{col}(B(t))$. $\square$

Note: if $W = I$ this reduces to the standard OLS normal equations $B^\top \tilde{s} = 0$, the textbook result that OLS residuals are orthogonal to the regressors.

*Step 4: Additional properties of $M$.*

  • $M$ is $W$-symmetric: $(WM)^\top = WM$ (since $WM = W - WB(B^\top WB)^{-1}B^\top W$ is symmetric)
  • $M$ is $W$-idempotent: $M^2 = M$ under the $W$ inner product (projecting twice gives the same residual)
  • $\text{rank}(M) = m - k$ (you lose $k$ dimensions to the factor space)

Practical Considerations:

*When neutralization is essential:* Systematic factor exposures create risk that is not compensated (or already priced in). If your alpha signal loads on the market factor, you're levering up beta, not alpha. Institutional mandates (market-neutral funds, sector-neutral books) require this by construction.

*When neutralization hurts:* If your signal genuinely forecasts a factor -- say, your model predicts the value factor will outperform next month -- neutralization throws away that information. You've built a model that correctly predicts a factor premium and then mechanically removed it. This is the core bias-variance trade-off: lower factor risk, but potentially lower expected return too.

*Practical pitfalls:* - Multicollinearity in $B(t)$: if sector dummies and size are highly correlated, $(B^\top WB)^{-1}$ becomes ill-conditioned. Use regularization (ridge) or drop redundant factors. - $B(t)$ changes over time: exposures are stale if you rebalance infrequently. Re-neutralize each period. - Weighting matters: cap-weighted neutralization treats large-cap stocks as the numeraire. If your alpha is stronger in small caps, cap-weighting can swamp your signal. - After neutralization, always check: does $\tilde{s}(t)^\top W B(t) \approx 0$? A quick diagnostic.

Answer: The neutralized signal is $\tilde{s}(t) = M s(t)$ where $M = I - B(B^\top WB)^{-1}B^\top W$ is the $W$-weighted annihilator of $\text{col}(B)$. Orthogonality follows directly from the weighted OLS normal equations: $B^\top W \tilde{s} = 0$ by construction. The trade-off is that you remove factor risk at the cost of discarding any predictive content your signal has for those factors.

Intuition

Factor neutralization is just linear regression residualization -- and this is one of those techniques that shows up everywhere in quant finance under different names. When a portfolio manager says "we're market-neutral," they mean the book's returns have zero beta to the market. When a risk model enforces "sector neutrality," it's zeroing out the sector-factor inner products. All of these are instances of the same $W$-orthogonal projection. The weighted OLS normal equations -- $B^\top W \tilde{s} = 0$ -- are literally the definition of factor neutrality.

The deeper lesson is about the bias-variance trade-off in signal design. Raw alpha signals are almost never pure idiosyncratic -- they pick up factor tilts, sometimes intentionally and sometimes not. Neutralization is a disciplined way to separate what you know (your alpha view) from what you are inadvertently betting on (factor exposures). But it can be too aggressive: a signal that correctly forecasts the value premium will be gutted by value-neutralization. The right engineering choice depends on whether your alpha is factor-timing alpha or stock-selection alpha -- and that requires understanding your model, not just mechanically running projections.

Open the full interactive solver →