I am looking to understand more how once you have a factor (or signal) how you would go about testing this for alpha, I assume you could see if it has low correlation with other factors but how would you go about testing how "good" the factor is?


Just a few points to consider

Performance evaluation

Classics like Sharpe ratio, but also tail risks (e.g., momentum)


Regress portfolios returns against some well-known factor models. Do you really capture something new ($\to$ look for the statistical and economic magnitude of the intercept)?

Trading costs

What happens after bid-ask spreads? Does your strategy generate high returns when you try to implement it in real life? What is the turnover?

Out-of-sample tests

Does your strategy exist in other asset classes/international markets? [This may not apply to some strategies/signals]

Time Variation

How does your strategy perform during the business cycle? Are returns higher/lower in recessions, or is it independent of the market?


Ask yourself why your strategy works. Is it just data mining, or is there some economic story (risk)?

A new factor model

If you think your factor has high explanation power and should be part of asset pricing models, you should run spanning tests (i.e., does your factor help to reduce the alpha of testing portfolios)?


The linear conditional expectation model is \begin{align} E\left[\vec{y}_t \left| \vec{x}_{t-1}\right.\right] &= \mathrm{B}^{\top} \vec{x}_{t-1},\\ \operatorname{VAR}\left(\vec{y}_t \left| \vec{x}_{t-1}\right.\right) &= \Sigma. \end{align} Here $\vec{x}_{t-1}$ is the signal, $\vec{y}_t$ are the returns, and the regression is "many to many". Conditional on observing the signal, the Markowitz portfolio is $\Sigma^{-1}\mathrm{B}^{\top}\vec{x}_{t-1}$.

Now to test if some element of $\vec{x}_{t-1}$ is "useful", you can check the corresponding column of the matrix $\Sigma^{-1}\mathrm{B}^{\top}$: if it is all zeroes, then that element of the signal is not changing your allocation. Now for a sample estimate of that passthrough matrix, the column will not literally be all zero due to sampling variation, and you have to perform a hypothesis test. This would be via a chi-square. I describe how to do this in Section 7.4.2 of my new book, The Sharpe Ratio: Statistics and Applications. The code is somewhat complicated, and it relies on the asymptotic distribution of the entire second moment matrix, which I recommend you do via automatic differentiation.

Edit To perform this test in R adapt the sample code:

# fake some historical data
ndays <- 1500
nfeatures <- 5
nstocks <- 8
Features <- matrix(rnorm(ndays*nfeatures),nrow=ndays)
Returns <- matrix(rnorm(ndays*nstocks),nrow=ndays)
# lets give them fake names
colnames(Features) <- letters[1:nfeatures]

thet <- theta(as.matrix(cbind(Features,Returns)))
ithet <- solve(thet)
# our hypothesis is that the Feature named 'd' is not pulling its weight
conmat <- matrix(0,nrow=nrow(thet),ncol=ncol(thet))
conmat[nfeatures + (1:nstocks),which(colnames(Features) == 'd')] <- 1
# symmetrize
conmat <- 0.5 * (conmat + t(conmat))
estval <- madness::matrix.trace(-conmat %*% ithet) 
estnum <- as.numeric(estval@val)
estse <- sqrt(as.numeric(vcov(estval)))
# should be approximately normal(0,1) under the null
waldstat <- estnum / estse
  • $\begingroup$ Sorry not a "complete" answer, as it is complicated. $\endgroup$
    – shabbychef
    Oct 13 at 17:49
  • $\begingroup$ No this is very helpful thank you! $\endgroup$ Oct 13 at 21:36

I've been working on exactly this -- introducing a carbon risk factor and testing it. There are a lot of papers that cover this: Fama McBeth 1973, Jegadeesh 1993, Fama French 1993, Carhart 1997. It's not too consistent but generally the tests they run are:

  • Correlation with the existing factors to show it is not correlated already
  • Correlation of the residual with existing factors, to show there is nothing left
  • Alpha of zero or closer to zero, to show that the model with the new factor is removing excess returns
  • Market risk beta closer to one, to show that the model with the new factor is coming closer to explaining the market
  • Improvement in R-squared with the new model factor
  • Fama McBeth 1973 also tested linearity of the return to market risk
  • Often the new model is tested across a variety of separate portfolios to see that there is no bias. For example Fama French 1993 did this.

There is also a paper called "Multi-Index Models Using Simultaneous Estimation of all Parameters" by Edwin J. Elton and Martin J. Gruber in a CFA publication called " A Practitioner's Guide to Factor Models" where they tested if a 4-factor model made better predictions than a 1-factor model.

  • $\begingroup$ Fantastic thank you! $\endgroup$ Oct 13 at 21:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.