Given data (for Problems 10–12):
r_tbill <- 0.05 # risk-free rate
r_sp500 <- 0.13 # expected return on S&P 500 (5% + 8% risk premium)
sigma_sp <- 0.20 # std dev of S&P 500
# Portfolio weights
w_bills <- c(0, 0.2, 0.4, 0.6, 0.8, 1.0)
w_index <- 1 - w_bills
For a portfolio mixing T-bills (weight \(w_b\)) and the S&P 500 (weight \(w_s = 1 - w_b\)):
\[E(r_p) = w_b \cdot r_f + w_s \cdot E(r_S)\]
\[\sigma_p^2 = w_s^2 \cdot \sigma_S^2 \quad \text{(T-bills have zero variance and zero covariance)}\]
\[\sigma_p = w_s \cdot \sigma_S\]
E_rp <- w_bills * r_tbill + w_index * r_sp500
sigma_p <- w_index * sigma_sp
var_p <- sigma_p^2
df10 <- data.frame(
W_bills = w_bills,
W_index = w_index,
E_Return = paste0(round(E_rp * 100, 1), "%"),
Variance = round(var_p, 4),
Std_Dev = paste0(round(sigma_p * 100, 1), "%")
)
kable(df10,
col.names = c("W_bills", "W_index", "E(r_p)", "Variance (σ²)", "Std Dev (σ)"),
align = "ccccc",
caption = "Problem 10: Portfolio Expected Return and Variance")
| W_bills | W_index | E(r_p) | Variance (σ²) | Std Dev (σ) |
|---|---|---|---|---|
| 0.0 | 1.0 | 13% | 0.0400 | 20% |
| 0.2 | 0.8 | 11.4% | 0.0256 | 16% |
| 0.4 | 0.6 | 9.8% | 0.0144 | 12% |
| 0.6 | 0.4 | 8.2% | 0.0064 | 8% |
| 0.8 | 0.2 | 6.6% | 0.0016 | 4% |
| 1.0 | 0.0 | 5% | 0.0000 | 0% |
Conclusion: As weight shifts from T-bills to the S&P 500, both expected return and risk increase linearly. The 100% S&P 500 portfolio has the highest expected return (13%) but also the highest risk (σ = 20%).
The mean-variance utility function is:
\[U = E(r_p) - \frac{1}{2} A \sigma_p^2\]
With \(A = 2\):
\[U = E(r_p) - \frac{1}{2}(2)\sigma_p^2 = E(r_p) - \sigma_p^2\]
A2 <- 2
U_A2 <- E_rp - 0.5 * A2 * var_p
df11 <- data.frame(
W_bills = w_bills,
W_index = w_index,
E_Return = round(E_rp, 4),
Variance = round(var_p, 4),
Utility = round(U_A2, 4)
)
kable(df11,
col.names = c("W_bills", "W_index", "E(r_p)", "Variance (σ²)", "Utility (A=2)"),
align = "ccccc",
caption = "Problem 11: Utility with A = 2")
| W_bills | W_index | E(r_p) | Variance (σ²) | Utility (A=2) |
|---|---|---|---|---|
| 0.0 | 1.0 | 0.130 | 0.0400 | 0.0900 |
| 0.2 | 0.8 | 0.114 | 0.0256 | 0.0884 |
| 0.4 | 0.6 | 0.098 | 0.0144 | 0.0836 |
| 0.6 | 0.4 | 0.082 | 0.0064 | 0.0756 |
| 0.8 | 0.2 | 0.066 | 0.0016 | 0.0644 |
| 1.0 | 0.0 | 0.050 | 0.0000 | 0.0500 |
Optimal portfolio (A = 2): W_bills = 0, W_index = 1 with Utility = 0.09
Conclusion: With a low risk-aversion coefficient (A = 2), the investor maximizes utility by holding 100% in the S&P 500. The higher expected return more than compensates for the additional variance.
Continuous optimal weight: \(w^* = \frac{E(r_S) - r_f}{A \cdot \sigma_S^2} = \frac{0.08}{2 \times 0.04} = 1.0\) → confirms 100% in the risky asset.
With \(A = 3\):
\[U = E(r_p) - \frac{1}{2}(3)\sigma_p^2 = E(r_p) - 1.5\sigma_p^2\]
A3 <- 3
U_A3 <- E_rp - 0.5 * A3 * var_p
df12 <- data.frame(
W_bills = w_bills,
W_index = w_index,
E_Return = round(E_rp, 4),
Variance = round(var_p, 4),
Utility = round(U_A3, 4)
)
kable(df12,
col.names = c("W_bills", "W_index", "E(r_p)", "Variance (σ²)", "Utility (A=3)"),
align = "ccccc",
caption = "Problem 12: Utility with A = 3")
| W_bills | W_index | E(r_p) | Variance (σ²) | Utility (A=3) |
|---|---|---|---|---|
| 0.0 | 1.0 | 0.130 | 0.0400 | 0.0700 |
| 0.2 | 0.8 | 0.114 | 0.0256 | 0.0756 |
| 0.4 | 0.6 | 0.098 | 0.0144 | 0.0764 |
| 0.6 | 0.4 | 0.082 | 0.0064 | 0.0724 |
| 0.8 | 0.2 | 0.066 | 0.0016 | 0.0636 |
| 1.0 | 0.0 | 0.050 | 0.0000 | 0.0500 |
Optimal portfolio (A = 3): W_bills = 0.4, W_index = 0.6 with Utility = 0.0764
Conclusion: With higher risk aversion (A = 3), utility values are lower across all risky allocations. Among the discrete choices the 100% index still wins, but the continuous optimum is now \(w^* = \frac{0.08}{3 \times 0.04} \approx 66.7\%\) in the S&P 500 — a meaningfully smaller risky allocation than under A = 2.
plot(w_index, U_A2,
type = "b", col = "steelblue", pch = 16, lwd = 2,
xlab = "Weight in S&P 500 (W_index)",
ylab = "Utility",
main = "Utility vs. Portfolio Allocation",
ylim = range(c(U_A2, U_A3)))
lines(w_index, U_A3,
type = "b", col = "tomato", pch = 17, lwd = 2)
legend("bottomright",
legend = c("A = 2", "A = 3"),
col = c("steelblue", "tomato"),
lwd = 2, pch = c(16, 17))
grid()
Utility vs. Portfolio Allocation for A=2 and A=3
Given utility formula:
\[U = E(r) - \frac{1}{2} A \sigma^2, \quad A = 4\]
investments <- 1:4
E_r <- c(0.12, 0.15, 0.21, 0.24)
sigma_cfa <- c(0.30, 0.50, 0.16, 0.21)
var_cfa <- sigma_cfa^2
kable(data.frame(Investment = investments, Er = E_r, Sigma = sigma_cfa),
col.names = c("Investment", "E(r)", "σ"),
align = "ccc",
caption = "CFA Utility Formula Data")
| Investment | E(r) | σ |
|---|---|---|
| 1 | 0.12 | 0.30 |
| 2 | 0.15 | 0.50 |
| 3 | 0.21 | 0.16 |
| 4 | 0.24 | 0.21 |
\[U = E(r) - \frac{1}{2}(4)\sigma^2 = E(r) - 2\sigma^2\]
A_cfa <- 4
U_cfa <- E_r - 0.5 * A_cfa * var_cfa
df_cfa1 <- data.frame(
Investment = investments,
E_r = E_r,
Sigma = sigma_cfa,
Variance = round(var_cfa, 4),
Utility = round(U_cfa, 4)
)
kable(df_cfa1,
col.names = c("Investment", "E(r)", "σ", "σ²", "Utility (A=4)"),
align = "ccccc",
caption = "CFA Problem 1: Utility with A = 4")
| Investment | E(r) | σ | σ² | Utility (A=4) |
|---|---|---|---|---|
| 1 | 0.12 | 0.30 | 0.0900 | -0.0600 |
| 2 | 0.15 | 0.50 | 0.2500 | -0.3500 |
| 3 | 0.21 | 0.16 | 0.0256 | 0.1588 |
| 4 | 0.24 | 0.21 | 0.0441 | 0.1518 |
Answer: A risk-averse investor with A = 4 selects Investment 3 (U = 0.1588). Investment 3 offers a strong expected return (21%) with the lowest standard deviation (16%) among the four options, yielding the best risk-adjusted utility.
A risk-neutral investor has \(A = 0\), so:
\[U = E(r) - \frac{1}{2}(0)\sigma^2 = E(r)\]
Variance is completely ignored; only expected return matters.
kable(data.frame(Investment = investments,
Er = E_r,
Utility = E_r),
col.names = c("Investment", "E(r)", "Utility (A=0)"),
align = "ccc",
caption = "CFA Problem 2: Utility for Risk-Neutral Investor")
| Investment | E(r) | Utility (A=0) |
|---|---|---|
| 1 | 0.12 | 0.12 |
| 2 | 0.15 | 0.15 |
| 3 | 0.21 | 0.21 |
| 4 | 0.24 | 0.24 |
Answer: A risk-neutral investor selects Investment 4 (E(r) = 0.24), which has the highest expected return regardless of risk.
\[U = E(r) - \frac{1}{2} A \sigma^2\]
The coefficient A scales the penalty applied to portfolio variance. A higher value of A means the investor penalizes variance more heavily.
Answer: (b) Investor’s aversion to risk.
| Option | Verdict | Reason |
|---|---|---|
| (a) Investor’s return requirement | ✗ | Return requirement is captured by E(r), not A |
| (b) Investor’s aversion to risk | ✓ | A is the risk-aversion coefficient — higher A = greater variance penalty |
| (c) Certainty equivalent rate | ✗ | The certainty equivalent is the value of U, not the parameter A |
| (d) Preference for 1 unit return per 4 units risk | ✗ | A is not a return-to-risk ratio; it is a scaling coefficient |
| Problem | Key Finding |
|---|---|
| 10 | E(r_p) and σ² scale linearly with weight in S&P 500 |
| 11 (A=2) | Optimal: 100% S&P 500 (U = 0.09); continuous w* = 100% |
| 12 (A=3) | Discrete optimum still 100% S&P 500; continuous w* ≈ 66.7% |
| CFA 1 | Investment 3 maximizes utility for A = 4 (U ≈ 0.1588) |
| CFA 2 | Investment 4 chosen by risk-neutral investor (highest E(r) = 0.24) |
| CFA 3 | A = investor’s aversion to risk — answer (b) |