Skip to content
All library documents

Rebuilding a Covariance Matrix with Improved Volatility Estimates

Article Quant Q&A · Author: WJA

Summary

For a mean-variance portfolio, the covariance matrix can be separated into asset volatilities and pairwise correlations. Place the estimated standard deviations on the diagonal of a diagonal matrix, then multiply that matrix by the correlation matrix and by the diagonal matrix again. This lets improved volatility estimates replace the original ones while retaining an existing correlation estimate.

The discussion also describes estimating correlations from returns normalized by time-appropriate volatility estimates. For example, returns can be centered by a long-run mean and scaled by rolling standard deviations before calculating their correlation matrix. The answer gives the construction but no empirical comparison of estimators or evidence that one volatility estimate will improve portfolio weights. Results depend on the quality and consistency of both the volatility and correlation estimates.

Key ideas

  • A covariance matrix can be built from a standard-deviation vector and a correlation matrix.
  • Replacing the standard-deviation estimates updates covariance levels while retaining the chosen correlations.
  • Correlations can be estimated from returns scaled by volatility estimates appropriate to each period.
  • The document gives no empirical evidence that a particular estimator improves portfolio performance.

Tags

Full text
# How can I use a more efficient volatility estimator to improve the co-variance matrix?


# How can I use a more efficient volatility estimator to improve the co-variance matrix?












Using mean-variance, I need to estimate a co-variance matrix $\Sigma$ to obtain the best weights in my portfolio.

However, there are other ways to compute the volatility $\sigma$ than historical standard deviation, for instance using Yang and Zhang estimator.

I don't understand however the link between the vol. estimation and the co-variance matrix. I know that on the diagonals you'll find the volatility, but how do you re-calculate the co-variance matrix after you have obtained more efficient volatility estimates?

## Answer by John (score 6, accepted)

https://quant.stackexchange.com/a/34167

Let $s$ be a $N\times1$ vector of standard deviations and $C$ be an $N\times N$ correlation matrix. The covariance matrix is equal to

$$\Sigma=\text{diag}(s) \ C \ \text{diag}(s)$$

where $\text{diag}(x)$ is a function that takes an $N\times1$ vector and puts it on the diagonal of a $N\times N$ matrix.

If you get some better standard deviation estimates, you can update the covariance matrix with the above formula.

It is also possible to normalize the data using your new volatility estimates in the denominator. For instance, if you decide to use a rolling N-day standard deviation estimate, then adjust each period's return by first subtracting the long-run mean and then divide by the standard deviation estimate appropriate for that day.

You can use this normalized series to estimate the correlation matrix.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.