# Calculating portfolio volatility from portfolio returns vs. from covariance matrix

I'm having trouble understanding the difference in calculating portfolio volatility via the portfolio returns vs. via the covariance matrix.

To be more specific: I understand that on the individual security level, volatility is calculated as the sample standard deviation of arbitrarily periodic returns over an arbitrary amount of time. Given that a portfolio has an NAV which can be treated as its total value, those same periodic returns can be calculated and a sample standard deviation can also be calculated over some time frame to produce its volatility as well.

However, I know this is not the method typically done for calculating portfolio volatility. Portfolio volatility is calculated with a covariance matrix and the weights associated with each of the securities/assets comprised within the portfolio.

I understand the math behind the covariance matrix and am not questioning its accuracy. What I don't fully understand is why the volatilities calculated via the portfolio's returns and the volatilities calculated via the covariance matrix differ as they do.

A coworker told me this was due to the small changes in the weights throughout the time period (since the returns for each of the securities/assets will increase/decrease values and adjust the weights until/unless rebalancing occurs). This, at a high level, makes sense to me. But I'm honestly unsatisfied with it and am hoping for a more proof-like answer.

• For what it’s worth, your colleague is right. The method based on the covariance matrix uses a single set of weights; the method based on the portfolio returns uses the actual weights as they change over time; in general, the two won’t give the same answer unless the weights are unchanging over time. You can formalize all that, but it’s going to be a fairly dull exercise in manipulating variances and covariances, unlikely to yield any further insight. – The Laconic Feb 21 at 21:20
• Thanks Laconic. It seems to me, then, that the covariance matrix method uses stronger assumptions through assigning one vector of weights. If that's the case, does that mean that the volatility derived from the portfolio returns is theoretically more accurate as it encompasses all the weights as they change through time? – Ringleader Feb 21 at 21:33
• IMHO, it’s “more accurate” as a description of what actually happened, but then again it could be misleading if the weights changed a lot. The covariance method is a “more accurate” representation of a forward-looking view that assumes the weights are fixed at current values—but only to the extent the covariance matrix is itself fixed. – The Laconic Feb 21 at 21:37
• Ahh, that actually makes a lot more sense to me. This was seriously confusing me for a while - thank you very much! – Ringleader Feb 21 at 21:38

Denote the vector of returns at time $$t$$ by $$X_t$$. Assume the bivariate process is stationary with a covariance matrix of $$\Sigma$$. Call the vector of portfolio weights at time $$t$$ $$w_t$$. Then your portfolio return is $$r_t = w_t'X_t$$, and its variance is $$\operatorname{Var}(r_t) = \operatorname{Var}(w_t'X_t) = w_t'\Sigma w_t .$$
Also note that $$(1)$$ is assuming your process has the same cross-sectional covariance matrix at every time point, which may or may not be acceptable in practice (it probably isn't).