Skip to content
All library documents

Calculating Asset Risk Contributions from Portfolio Covariance

Article Quant Q&A · Author: Matt

Summary

The document explains how to calculate each asset’s contribution to a portfolio’s volatility from the covariance matrix and portfolio weights. For covariance matrix Σ and weight vector w, portfolio variance is wᵀΣw. The covariance between asset i and the portfolio is the ith entry of Σw, because the portfolio return is a weighted sum of asset returns. Multiplying that covariance by the asset’s weight and dividing by portfolio standard deviation gives the asset’s volatility contribution.

The explanation includes an algebraic proof using the covariance of one asset’s return with the weighted sum of portfolio returns. It addresses the question of how to relate an individual asset to a portfolio, and applies when the covariance estimates and portfolio weights are specified. The document does not discuss estimation error, time-varying covariance, or alternative risk contribution conventions, so those considerations are outside its scope.

Key ideas

  • Portfolio variance is the quadratic form of the covariance matrix and the portfolio weights.
  • The vector Σw contains each asset’s covariance with the portfolio.
  • An asset’s volatility contribution is its weight times its portfolio covariance, divided by portfolio volatility.
  • The covariance relationship follows from linearity of covariance applied to the weighted portfolio return.

Tags

Full text
# Correlation of asset to portfolio, given certain variables


# Correlation of asset to portfolio, given certain variables












Ultimately I'm trying to calculate stdev contribution, but I've hit a hurdle.

What I have:

20x20 correlation matrix for various assets

Standard deviations for each asset

Returns for each asset

Weights corresponding to various portfolios

What I've derived:

Covariance Matrix

Variance/Stdev for each of the portfolios

What I want:

Risk contributions for each asset in each portfolio, but that requires correlation of each asset to each individual portfolio.

So that's my hang up. I can't seem to figure out how to calculate Covar(asset,portfolio) or correl(asset,portfolio).

## Answer by Richi Wa (score 5)

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

If $\Sigma$ is the covariance matrix of all assets and $w$ is the column vector of weightings of the asset in a certain portfolio. Then $$ w^T \Sigma w = VAR $$ is the variance of the portfolio. The contribution to volatility of asset $i$ is given by $$ w_i (\Sigma w)_i/\sqrt{VAR}, $$ where $(\Sigma w)_i$ is the $i_{th}$ entry in the vector $\Sigma w$.

Note that $(\Sigma w)_i$ is the covariance of the asset $i$ to the porfolio with weights $w$.

You can read more details in the following working paper and the references therein: http://arxiv.org/abs/1009.3638

Proof: Write $r_p = \sum_{j=1}^n w_j r_j$, where $r_p$ is the portfolio return, then $$ cov(r_i,\sum_{j=1}^n w_j r_j) = \sum_{j=1}^n w_j cov(r_i,r_j) = (\Sigma w)_i. $$

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.