I understand that there are several methods for decomposing contributions to risk (be it variance, std dev, etc.) in a portfolio of assets. For example, a response in this post indicates that there isn't a "right" way to allocate risks in a portfolio. I am most familiar with the method that utilizes Euler's theorem (i.e., weighted marginal contributions).

My main question is: what are some of the other methods? What is the main difference in these methodologies? Does it stem from how the covariance terms are shared?

For example, suppose I run a four-factor regression on a portfolio and get an R-squared of 100% (i.e., nullifying any residual risk). I could then take the betas and historical covariances and decompose the risk contributions of those factors to that portfolio. Relatedly, is anyone familiar with using an average-over-orderings method for decomposing the R-squared contributions of the various factors as a form of risk decomposition (i.e., variation decomposition)? This is available in R via the relaimpo package (in particular method LMG) and is discussed in this article. Is there a way to reconcile these different methodologies? The Euler method can indicate negative contributions to risk whereas this average-over-orderings method does not. One can make an argument for the intuition behind each method, so I am just wondering how to best reconcile them.



2 Answers 2


Different portfolio risk decompositions answer different questions. Before discussing what method to use, first ask why you want a decomposition and what definition of risk are you using.

Is the point to examine how portfolio return volatility is affected by a tiny change in portfolio weights? On the other hand, if the point is to make a statement like, "30% of our risk comes from China," that's quite problematic because risk isn't additive.

Quick definitions to get on the same page

Let $\mathbf{R}$ be a vector of random variables denoting excess returns (i.e. in excess of the risk free rate), and let $\mathbf{w}$ be a vector denoting weights in a portfolio. (Weights need not sum to 1 because we have excess returns: 1 - $\sum w_i$ is implicitly weight on risk free rate.) $$ R_p = \mathbf{w}' \mathbf{R} = \sum_i w_i R_i$$

Let $\Sigma = \operatorname{Cov}(\mathbf{R})$ be the covariance matrix for the vector of returns. Standard deviation of portfolio returns as a function of portfolio weights is given by $ \sigma(R_p)(\mathbf{w}) = \sqrt{ \mathbf{w}' \Sigma \mathbf{w} }$.

Measure 1: $\frac{\partial \sigma}{\partial \mathbf{w}}$

One standard decomposition is to simply look at the marginal contributions to portfolio standard deviation:

$$\frac{\partial \sigma}{\partial \mathbf{w}} = \frac{1}{\sigma}\Sigma\mathbf{w}$$

Measure 2: $\mathbf{w} \circ \frac{\partial \sigma}{\partial \mathbf{w}} $

By Euler's homogeneous function theorem we have:

$$\sum_i w_i \frac{\partial \sigma}{\partial w_i} = \sigma(\mathbf{w})$$

This is still a marginal measure. (e.g. to see this, examine how this looks if a portfolio has two assets which are near perfect hedges for each other.)

Observe also that $\frac{\partial \sigma}{\partial \log w_i} = w_i \frac{\partial \sigma}{\partial w_i}$, hence $w_i \frac{\partial \sigma}{\partial w_i}$ tells you how much the standard deviation changes for a small percent change in your portfolio position. Eg. If I increase a weight 1 percent from from .02 to .0202, what happens to the standard deviation of portfolio returns?

Same as above but use weights on factors instead of weights on securities

Let $f_1, \ldots, f_k$ be zero cost portfolio returns (aka factors). Let $\Sigma^{(f)}$ be the covariance matrix. We can do the same type of math as above where $\beta$s denote weights on factors instead of weights on individual securities. We also have variance from an $\epsilon$ term orthogonal to the factors.

$$ R_p = \beta_1 F_1 + \beta_2 F_2 + \ldots \beta_k F_k + \epsilon $$

$$ \mathbb{V}(R_p) = \mathbb{V}(\epsilon) + \sum_{ij} \beta_i \beta_j \mathbb{Cov}(F_i, F_j)$$

Orthogonal factors: same thing as above but if factors are orthogonal (i.e. uncorrelated)

Because excess returns $R_i$ and $R_j$ are almost certainly correlated, the variance of portfolio returns is not simply the sum of the variances.

$$\mathbb{V}(R_p) = \mathbf{w}' \Sigma \mathbf{w} = \sum_{ij} w_i w_j \Sigma_{ij}$$

With $n$ securities, you have $n$ variance terms $n(n-1)$ $\Sigma_{i\neq j}$ covariance terms. On the other hand, if you have weights on orthogonal random variables, then you get a Pythogorean theorem type result and the variance of the sum is the sum of the variances. This decomposition gets much cleaner because all the covariance terms are zero.

$$ \mathbb{V}(R_p) = \mathbb{V}(\epsilon) + \sum_{i} \beta_i^2 \mathbb{V}(F_i)$$

With orthogonal factors, you can write the portfolio variance as simply the sum of variance stemming from each individual factor (because in a sense there are no statistical interactions between the factors).

(Note: portfolios must be constructed specially to have orthogonal returns)

Average over orderings methods

As noted previously, if you have $n$ securities, you don't get a clean, linear decomposition into $n$ components because of all the covariance terms: you have a sum over $\frac{n(n-1)}{2}$ covariance terms.

Another possible thing to do is to get at some notion of importance by looking at marginal variance (from adding the position) averaged over different orderings. Eg. in the two return case look at:

  • Add security 1 first. $\mathbb{V}(w_1 R_1) = w_1^2 \Sigma_{11}$ and
  • Add security 1 second. $\mathbb{V}(w_1 R_1 + w_2 R_2) - \mathbb{V}(w_2 R_2) = w_1^2 \Sigma_{11} + 2 w_1 w_2 \Sigma_{12}$

Then average these two orderings together to get:

$$ w_1^2 \Sigma_{11} + w_1 w_2 \Sigma_{12}$$

This measure probably has some nice properties, but it is a bit abstract in a sense.

A warning

Something to watch out for is that unsophisticated types may want to say something like 20% of our risk is from exposure to China, 80% is from North America. But unless each region is statistically independent (which they most certainly aren't), this statement can never really make great sense. The positions interact! You have the covariance term between China and North America.

Anyway, I think a first question you need to ask and answer is why am I trying to decompose risk? What question am I trying to answer?


The method which utilizes the Euler's theorem (i.e., weighted marginal contributions) is indeed one of the methods used to decompose the risk of the portfolio.

Sometimes, you would like your factors/variables to be completely independent from each other (to remove multicollinearity issue in regression analysis), maintain the interpretation of the factors/variables, and decompose the risk of the portfolio into the factors/variables.

In Orthogonalized Equity Risk Premia and Systematic Risk Decomposition They borrow a mathematical technique called symmetric orthogonalization from quantum chemistry to identify the underlying uncorrelated components of the factors and maintains the interpretations of the original factors.

Specifically, given the return $F_{T,K}$, they try to find $F_{T,K}^{\bot}$ by finding $S_{K,K}$. The $S_{K,K}$ which performs symmetric orthogonalization is $M_{K,K}^{-\frac{1}{2}} I_{K,K}$ where $S_{K,K} = O_{K,K}D_{K,K}O_{K,K}^{-1}$, where the $k$-th column of $O_{K,K}$ is the $k$-th eigenvector of the matrix $M_{K,K}$, and $D_{K,K}$ is the diagonal matrix whose diagonal elements are the corresponding eigenvalues, that is, $D_{K,K} = \lambda_k$, where $k$ goes from 1 to $K$. $M_{K,K}$ is $(T-1)$ times variance-covariance matrix.

This way, the factors become completely uncorrelated with each other, which means that covariance terms are all 0 and you can decompose the risk into individual factors. One drawback with this methodhology is that, if the original factors are highly correlated with each other (e.g. vif > 5), then the similarity, as measured by Pearson correlation coefficinet, between original and transformed factors may be low.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.