Portfolio Covariance with Simple and Log Returns
Summary
The document examines how to calculate covariance between two weighted portfolios when the underlying asset covariance matrix is estimated from log returns. The usual bilinear matrix calculation applies when portfolio returns are linear combinations of the underlying returns. Weighted sums of asset log returns generally do not equal the log return of a portfolio, whereas simple returns preserve that linear relationship for fixed portfolio weights.
An answer derives a conversion under a specific assumption: two asset log returns are jointly normal. It expresses the covariance of their simple returns in terms of their log-return means, volatilities, and correlation. This illustrates that a conversion is possible with distributional assumptions, rather than as a universal transformation based on covariance alone. The response cautions that for daily data the numerical difference may often be small, while errors in estimating the return distribution may matter more. The derivation is limited to its stated lognormal setup and does not provide a general conversion for arbitrary return distributions or changing portfolio weights.
Key ideas
- The portfolio covariance matrix formula relies on portfolio returns being linear combinations of underlying returns.
- Weighted sums of simple asset returns represent portfolio returns under fixed weights, while weighted sums of log returns generally do not.
- Under jointly normal log returns, simple-return covariance can be derived using means, volatilities, and correlation.
- The conversion depends on distributional assumptions and is not a universal covariance transformation.
- For daily observations, the practical difference may be smaller than uncertainty in estimating the return distribution.
Tags
Full text
# Calculating Portfolios Covariance via Bilinearity with Log or Simple Returns
# Calculating Portfolios Covariance via Bilinearity with Log or Simple Returns
I'm wanting to calculate the covariance between two portfolios $A$ and $B$ which are allocated to assets $X_i$ (where $i \in \left[1, 2, \cdots, N \right]$) with weights $\vec{w_A}$ and $\vec{w_B}$, respectively. Assuming I already have the covariance estimated between these assets ($\Sigma_X$), I know I can calculate the covariance between these two portfolios ($\Sigma_{A,B}$) using the bilinearity property of covariance, where $W$ is the $2 \times N$ matrix containing $\vec{w_A}$ and $\vec{w_B}$ in its rows:
$$\Sigma_{A,B} = W\Sigma_{X}W^T.$$
However, there may be a slight issue with regard to the use of log returns or simple returns. The best practice for calculating $\Sigma_X$ would be to do so using log returns of the underlying assets. However, taking the weighted sum over those log returns will not result in the log return of the portfolio since log returns do not accumulate across assets. Bilinearity depends on the new random variables ($A$ and $B$) being linear combinations of the underlying random variables ($X_i$). This means that I either need to calculate $\Sigma_X$ using simple returns of the assets, or I need to accept that I am accumulating log returns across assets.
The optimal scenario would be if there is a way to convert a covariance estimated via log returns into a covariance estimated via simple returns (and vice versa). That way I could still calculate $\Sigma_X$ correctly, convert it into a geometric covariance estimation, apply bilinearity to get the portfolio geometric covariance estimation, and then convert that back into a log covariance estimation. I haven't come across such a transformation.
For the record, I'm doing these calculations with daily observations, so I recognize that the difference in these two calculations will probably be quite small as log returns approximate simple returns when they are small.
What's the best practice?
## Answer by Rylan (score 1)
https://quant.stackexchange.com/a/76691
Suppose we start with two stocks $A$ and $B$, and we assume they are lognormally distributed. Specifically, let's assume:
$$\log(A_t) - \log(A_{t-1}) = X \sim N(\mu_A, \sigma^2_A)$$ $$\log(B_t) - \log(B_{t-1}) = Y \sim N(\mu_B, \sigma^2_B)$$ $$\text{Cor}(X, Y) = \rho$$
Then, at time $t$, with all terms conditional on $A_t$ and $B_t$, we have: $$A_{t+1} = A_te^{\mu_A + \sigma_A X}$$ $$B_{t+1} = B_te^{\mu_B + \sigma_B Y}$$
$$\text{Cov}\Bigg( \frac{A_{t+1} - A_t}{A_t}, \frac{B_{t+1} - B_t}{B_t}\Bigg)$$ $$= \frac{\text{Cov}(A_{t+1}, B_{t+1})}{A_tB_t}$$
$$ \frac{1}{A_tB_t}\Big(\mathbb{E}(A_tB_te^{\mu_A + \mu_B + \sigma_A X + \sigma_B Y}) - \mathbb{E}( A_te^{\mu_A + \sigma_A X})\mathbb{E}( B_te^{\mu_B + \sigma_B X})\Big)$$
$$= \mathbb{E}(e^{\mu_A + \mu_B + \sigma_A X + \sigma_B Y}) - \mathbb{E}(e^{\mu_A + \sigma_A X})\mathbb{E}(e^{\mu_B + \sigma_B X})$$
$$= e^{\mu_A + \mu_B + \frac{1}{2}\sigma^2_A + \frac{1}{2}\sigma^2_B + \sigma_A\sigma_b\rho} - e^{\mu_A + \mu_B + \frac{1}{2}\sigma^2_A + \frac{1}{2}\sigma^2_B }$$ $$= e^{\mu_A + \mu_B + \frac{1}{2}\sigma^2_A + \frac{1}{2}\sigma^2_B }(e^{\sigma_A\sigma_B\rho} - 1)$$
(Note that for other assumptions on the distributions of the log returns, you can try other similar analyses.)
All this said, and this is a matter of opinion, I'm not sure I'd bother going through this. For most cases, the difference between the two estimates of covariance is going to be relatively small as you noted, and the problem of properly estimating the distribution (or even just mean, covariances, etc) of the log-returns is likely much larger.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.