A few people in the DMs asking about equity factor models so here's a short explainer.

Let's make it a concrete problem -- you are the risk manager at a big multi-manager hedge fund with ~100 sub-PMs each of whom has a portfolio of 10-50 stocks, long and short.
You want to understand exactly what risks are being taken so that you can hedge the undesired risks and keep the ones you are likely to get paid for.

To do this you want to understand how well each stock can be used as a hedge for any other stock in the portfolio, i.e. you want
the covariance matrix, a 2000 x 2000 matrix which tells you, for every pair of stocks A and B, how much is B likely to move if A moves by 1%?

Estimating the covariance matrix from historical data is a hopeless problem (for boring linear algebra reasons) so instead you use
a factor model. The idea is that the return of every stock can be modeled as depending linearly on a number of *factors* which are generic, possibly unobservable drivers of returns.

Simple examples of factors are the overall stock market, sectors, country or currency exposure.
You also have accounting-based factors, like price-to-earnings (expensive stocks tend to move together), return-on-assets (high margin companies move together), debt-to-equity ratio (leveraged companies move together) etc.
There can be purely price-based factors, e.g. a slightly surprising fact is that "momentum" names move together, i.e. stocks that have gone up in the last year often move together, and inversely to stocks that went down in the last year.
Or you can get more esoteric, e.g. a factor representing all stocks that have recently been upgraded by analysts, or a factor representing stocks that are highly shorted.
The return of stock i on day t is modeled as a linear combination of the unknown factor returns plus an unknown residual, where the dependence of stock i on factor j on day t is given by the *known* exposure X(i, j, t)
If we understand that r, f and epsilon are vectors and X is a matrix then we can drop all the subscripts and write it in matrix notation which is much easier.

It's important to understand that the exposures X are known in advance, and its the factor returns f that are unknown
Now you have a set of linear equations on each day, and you can solve the linear equations to get the vector of factor returns for each day using the normal equation -
What's the point of this? The factor models tells you how the covariance matrix of stocks is related to the covariance matrix of factors - it's the sum of the covariance due to factor exposures - Σ_f - and the covariance of the residuals Ω which is normally assumed to be diagonal
Now instead of estimating the ~2 million parameters of a 2000 x 2000 stock covariance matrix, you just need to estimate ~800 parameters of a 40 x 40 factor covariance matrix -- your risk model just got a whole lot simpler.
Even more interestingly, if you are not just a risk manager but a quant equity pm, you can take expectations and get a model for the expected return (or alpha) of each stock in terms of the expected returns on each factor --
If you're doing this you would normally treat some factors as "risk" factors which have zero expectation (i.e. you want to hedge them to minimise risk) and some factors as "alpha" factors which have positive expectation, as well as risk --
you want exposure to the alpha factors, but you want *more* exposure to the ones which have higher expected return given the risk, and your factor model gives you a structured way to express that.
The vector of alphas, and the stock covariance matrix, are the key inputs to a portfolio optimizer (along with transaction costs, financing costs, position and turnover constraints, risk constraints etc). One particularly important fact is that portfolio optimizers are
known to behave *really* badly (recommending nonsense portfolios) when there is noise in the covariance matrix. You get noise when you try to estimate too many parameters from too little data, so using a factor model to reduce the number of parameters to estimate
is a critical step to take before you even consider using a portfolio optimizer (or some other method of reducing noise, but a factor model is the most common).
Lots of directions to take this but I think that's enough for now. There are many others who know a lot about this -- let me know if I missed anything important @choffstein @alphaarchitect @CliffordAsness?
I answered some follow-up questions here https://twitter.com/macrocephalopod/status/1356915582050979841?s=20
You can follow @macrocephalopod.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled:

By continuing to use the site, you are consenting to the use of cookies as explained in our Cookie Policy to improve your experience.