Preferences





Kerry Back

Risk Aversion

  • To model liking high expected returns and disliking high variance, we can rank portfolios based on a combination of mean and variance:

\[\text{expected return}-\frac{1}{2}A\times\text{variance}\]

  • The 1/2 is a convention. The number \(A\) is risk aversion.

Indifference curves

Benefit-cost ratio at the optimum

  • Recall: for frontier portfolios, the marginal benefit-cost ratio is the same across assets:
    • marginal benefit / marginal cost \(= k\)
    • marginal benefit = risk premium
    • marginal cost is the marginal contribution to portfolio risk \(C_i^\top w\)
    • so \((\bar{r}_i-r_f)/C_i^\top w = k\)
  • The optimal frontier portfolio is the one for which \((\bar{r}_i-r_f)/C_i^\top w = A\).

  • Repeating: \((\bar{r}_i-r_f)/C_i^\top w = A\)
  • High risk aversion \(A \Rightarrow\) low marginal contributions to risk \(C_i^\top w\)
  • Solve:
    • Rearrange: \((1/A)(\bar{r}_i-r_f) = C_i^\top w\)
    • Stack: \((1/A)(\bar{r}-r_f1_n) = Cw\)
    • Solve: \((1/A)C^{-1}(\bar{r}-r_f1_n) = w\)
  • High risk aversion \(A \Rightarrow\) small \(w\)

Example

import numpy as np

rf = 0.02
mn1, mn2, mn3 = 0.06, 0.08, 0.10
sd1, sd2, sd3 = 0.1, 0.15, 0.12
corr12, corr13, corr23 = 0.5, 0.7, 0.6

raver = 6

Solution of the example

S = np.diag([sd1, sd2, sd3])
R = np.identity(3)
R[0, 1] = R[1, 0] = corr12
R[0, 2] = R[2, 0] = corr13
R[1, 2] = R[2, 1] = corr23
C = S @ R @ S

rprem = np.array([mn1, mn2, mn3]) - rf
Cinv = np.linalg.inv(C)
w = (1/A) * Cinv @ rprem
w1=-13.3%, w2=1.1%, w3=62.5%