CONTENTS

Solution: Minimum-Variance Portfolio from a 3×3 Σ\Sigma

Part 1 — Lagrangian derivation

Minimise wΣww^\top\Sigma w subject to 1w=1\mathbf{1}^\top w = 1. Lagrangian:

L(w,λ)=wΣwλ(1w1).\mathcal{L}(w, \lambda) = w^\top\Sigma w - \lambda(\mathbf{1}^\top w - 1).

First-order condition (L/w=0\partial\mathcal{L}/\partial w = 0):

2Σwλ1=0w=(λ/2)Σ11.2\Sigma w - \lambda \mathbf{1} = 0 \Rightarrow w = (\lambda/2)\Sigma^{-1}\mathbf{1}.

Impose the constraint:

1w=(λ/2)1Σ11=1λ/2=1/(1Σ11).\mathbf{1}^\top w = (\lambda/2)\mathbf{1}^\top\Sigma^{-1}\mathbf{1} = 1 \Rightarrow \lambda/2 = 1/(\mathbf{1}^\top\Sigma^{-1}\mathbf{1}).

So

w=Σ111Σ11.w^* = \frac{\Sigma^{-1}\mathbf{1}}{\mathbf{1}^\top\Sigma^{-1}\mathbf{1}}. \quad \checkmark

Parts 2–3 — Numerical computation

import numpy as np Sigma = np.array([[0.04, 0.02, 0.01], [0.02, 0.09, 0.03], [0.01, 0.03, 0.16]]) ones = np.ones(3) Sigma_inv = np.linalg.inv(Sigma) num = Sigma_inv @ ones den = ones @ num w_star = num / den print("w* =", w_star.round(4)) # w* = [0.668 0.234 0.098] var_star = w_star @ Sigma @ w_star std_star = np.sqrt(var_star) print("var =", var_star.round(5), " sigma =", std_star.round(4)) # var = 0.03145 sigma = 0.1773

Minimum-variance portfolio: w(0.668,0.234,0.098)w^* \approx (0.668, 0.234, 0.098). Variance 0.031\approx 0.031, volatility 17.7%\approx 17.7\%.

Part 4 — Interpretation

  • Asset 1 gets 67% weight. It has the smallest variance (σ12=0.04\sigma_1^2 = 0.04, volatility 20%20\%), so the optimiser piles into it.
  • Asset 3 gets only 10% weight despite being the highest-volatility asset (σ32=0.16\sigma_3^2 = 0.16, volatility 40%40\%). Diversification still pushes some weight into it, because it has the lowest correlation with asset 1 (ρ13=σ13/(σ1σ3)=0.01/(0.20.4)=0.125\rho_{13} = \sigma_{13}/(\sigma_1\sigma_3) = 0.01/(0.2\cdot 0.4) = 0.125).
  • Asset 2 gets middling weight — volatility 30%30\%, correlations 0.330.33 and 0.250.25 with assets 1 and 3. It's neither the lowest-vol nor the most-diversifying.
Compare to the equal-weighted portfolio wEW=(1/3,1/3,1/3)w_{\text{EW}} = (1/3, 1/3, 1/3): wEWΣwEW=0.0489w_{\text{EW}}^\top\Sigma w_{\text{EW}} = 0.0489. Minimum-variance achieves 0.0310.03136% lower variance than equal-weighted.

Takeaways

  • w=Σ11/(1Σ11)w^* = \Sigma^{-1}\mathbf{1}/(\mathbf{1}^\top\Sigma^{-1}\mathbf{1}) is the closed-form minimum-variance portfolio (no expected-return info used). The only inputs are the covariance matrix and the full-investment constraint.
  • Minimum-variance portfolio concentrates in low-volatility assets. It's a well-documented effect: minimum-variance portfolios historically outperform equal-weighted ones on a risk-adjusted basis.
  • Diversification still matters at the margin. Even the highest-volatility asset gets positive weight if it decorrelates with the others.
  • Real-world caveat. With small sample sizes, Σ^1\hat\Sigma^{-1} is extremely noisy. In practice, minimum-variance portfolios computed from raw sample covariance concentrate absurdly in whichever asset happens to have the lowest sample volatility — shrinkage (Ledoit-Wolf) or factor-model regularisation is mandatory for stability.