I have a portfolio (p) of N equities, with let's say weights vector (m) at the start of the calculation period. Each equity has its own set of factors (like corresponding country, industry index, etc.), some of the equities have the same factors.

I am trying to break down the systematic risk into individual factor contributions to portfolio's (p) systematic risk.

What I do is for each component of portfolio (p) I calculate corresponding factors exposures (betas), and say that portfolio's (p) expo to those factors are weighted (based on weights m) sums of betas.

Systematic risk is R2 of portfolio's (p) returns vs sum of factor returns with calculated weights (sums of betas).

Factor k % contribution to portfolio's risk is corr(p,k) * p expo to k * standard deviation of k / standard deviation of the whole portfolio.

Using this methodology I am able to sum up each factors k % contribution to R2 only if portfolio is made of one instrument but if it is of multiple instruments the sum of factor's % contributions does not exactly equal R2.

Q - How to calculate factors % contribution to portfolio's systematic risk? Or does sum of contributions not need to be equal portfolio vs factors (with calculated weights) R2?

Help would be appreciated a lot, thank you in advance

  • $\begingroup$ Did you try googling or using a reference text (eg, Grinold and Kahn)? Contribution to portfolio risk is a standard calculation $\endgroup$
    – Chris
    Commented Oct 8, 2019 at 21:14
  • $\begingroup$ Chris, yes I have, though couldn't get to the point which fully answers my question. But thank you for the reference. $\endgroup$
    – Paul
    Commented Nov 26, 2019 at 16:07

2 Answers 2


Because I do not think the answer above is satisfactory, let me try to explain how contribution to systematic risk works when you have multiple factors.

The key issue, to me, seems that you are ignoring the covariance between factors.

Let me pick an example, and evaluate the contribution of the standard factors $Mkt$, $SMB$ and $HML$ to the performance of a mutual fund (for example $MSSGX$). I am going to use monthly returns from 2010 to today on the example.

If I run the usual regression:

$$r_{MSSGX} - r_f = \alpha + \beta^{Mkt} (r_{mkt}-r_f) + \beta_{SMB} (r_{SMB})+\beta_{HML} (r_{HML}) + \epsilon$$

I get the estimates below:

      Source |       SS           df       MS      Number of obs   =       144
-------------+----------------------------------   F(3, 140)       =    149.13
       Model |  .715188086         3  .238396029   Prob > F        =    0.0000
    Residual |  .223798532       140  .001598561   R-squared       =    0.7617
-------------+----------------------------------   Adj R-squared   =    0.7566
       Total |  .938986618       143   .00656634   Root MSE        =    .03998

    MSSGX_rf | Coefficient  Std. err.      t    P>|t|     [95% conf. interval]
       mktrf |   1.133939   .0808516    14.02   0.000      .974091    1.293787
         smb |   1.432307   .1447066     9.90   0.000     1.146215      1.7184
         hml |  -.6505726    .102298    -6.36   0.000    -.8528212    -.448324
       _cons |  -.0013382   .0034322    -0.39   0.697    -.0081238    .0054475

Now we can decompose the $R^2$. All the quantities we need are:

$\beta_{Mkt}^2 = 1.28$, $\beta_{smb}^2 = 2.05$, $\beta_{hml}^2 = 0.42$

$Var(Mkt) = 0.001898$, $Var(SMB) = 0.000590$, $Var(HML) = 0.001072$

$Cov(Mkt,SMB) = 0.0003287$, $Cov(Mkt,HML) = 9.07535E-05$, $Cov(HML,SMB) = 2.13465E-05$

$Var(MF) = 0.00656634$

So that we have: $$R^2 = \frac{1}{Var(MF)} \bigg ( \times \beta_{Mkt}^2 \times Var(Mkt) + \beta_{HML}^2 \times Var(HML) + \beta_{SMB}^2 \times Var(SMB) + 2 \times \beta_{Mkt} \beta_{HML} cov(Mkt,HML) + 2 \times \beta_{Mkt} \beta_{SMB} cov(Mkt,SMB) + + 2 \times \beta_{Mkt} \beta_{SMB} cov(Mkt,SMB) \bigg ) = 0.7617$$

  • 1
    $\begingroup$ Sorry, I do not uderstand what $Var(MF)$ is. Can you clarify? $\endgroup$
    – nbbo2
    Commented Aug 8, 2023 at 10:46
  • $\begingroup$ Sorry. You are right. It is the variance of the mutual fund under analysis. $\endgroup$
    – phdstudent
    Commented Aug 8, 2023 at 11:43

For those who have the same practical question:

Q - How to calculate factors % contribution to portfolio's systematic risk? Or does sum of contributions not need to be equal portfolio vs factors (with calculated weights) R2?

The way I see it: A - Short version - if the factors are not purified and portfolio components have different corresponding factors on which they are regressed individually (to get betas for each portfolio component via multi-factor model) sum of systematic risk contributions from each portfolio component DOES NOT NEED TO BE EQUAL to R2 (R2 of portfolio returns vs factor returns, where factor is attribution to portfolio returns from systematic factors).

Sum of factor contributions must be equal to portfolio vs the whole factor R2 using non-purified factors only if each portfolio component is regressed on the same factors (e.g. portfolio of cap goods stocks from Sweden).

Hope this will help somebody.


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.