How to Think About Forecast Uncertainty When Building Portfolios
- Julean Albidone
- Aug 2, 2023
- 3 min read
Updated: Oct 24, 2023
Let's say you're a newly appointed portfolio manager. You want to be successful and show your CIO and investment committee that you're up to the task.
In the quant space you're going to reach for portfolio optimization. Traditional mean variance optimization is an incredibly powerful tool. But it's also flawed in many respects. Let's break it down.
A standard portfolio optimizer takes two inputs. First is the return vector, this is essentially the set of expected returns for each asset in your investable universe. The second is the covariance matrix. The covariance matrix tells you how each of the assets move in relation to each other, this is important for boosting your risk adjusted returns.
Then you will be setting the return and risk characteristics that you want for your portfolio. Perhaps maximizing return given a risk constraint, or maybe boosting the risk adjusted return of the portfolio.
Now invariably what is going to happen is the optimizer is going to force you into some pretty extreme portfolio weightings that no sane manager or committee would accept. You may find that it is ploughing all your capital into a just a handful of positions, with little to no exposure in the remaining 80% of your universe.
You may try and solve this using all sorts of constraints on positions, country exposures, risk, etc. But inevitably you will find this as a bit of a whac-a-mole exercise. Eventually you will have so many constraints flying around that you will come to feel as if it's defeating the whole purpose of the optimizer. What's the point of having an optimizer tell you the optimal portfolio if you're just constraining it to oblivion.
Let me tell you what is going on and how to solve it.
Let's look back at the two main components that make up an optimizer - the return vector and covariance matrix - and break down what we are telling the optimizer. We are telling the optimizer that no matter how wildly our stocks swing up and down in our investment horizon, they will with 100% certainty end up at the return we stated in the return vector. So if our return vector says Apple is going to return 15% in 1 year, then our optimizer expects with 100% certainty that Apple will have gained 15% 1 year from now. And the same goes with every other asset in the universe.
This is the issue. And you can test this easily by telling the optimizer to maximize return given no risk constraints, it will just put all the money into the asset with the highest return.
So this return assumption is obviously absurd. The likelihood that any forecast is hit exactly is practically zero.
Instead, the better way to think about, and ultimately model this, is to have uncertainty around your forecast. It's very intuitive actually.
So in addition to our return vector and our covariance matrix (uncertainty set around our price path), we can add an uncertainty set around our return vector.
Once you do this, you will find that your optimizer produces very stable portfolio weighting, without the extreme over weightings into a few assets that you find with traditional mean variance optimization. Your portfolio will also produce much more robust returns out of sample. The generated portfolios will feel more natural and you will be more confident in the output as well.