Series · Grinold & Kahn

I am re-reading Grinold & Kahn's Active Portfolio Management and writing the math out as I go (using AI). These are distillations for my own benefit. Rest of chapters will follow.

Characteristic Portfolios

Grinold & Kahn, Active Portfolio Management, Ch. 2 technical appendix.

01 Setup

\(N\)Number of risky assets.
\(\mathbf r\)\(N\times 1\) vector of asset excess returns, \(r_n\) the excess return on asset \(n\).
\(\mathbf V\)\(N\times N\) covariance matrix of those returns. Symmetric, positive definite; \(\mathbf V^{-1}\) exists, symmetric.
\(\mathbf a\)\(N\times 1\) vector of asset attributes. Anything measurable per asset: book-to-price, a beta estimate, a vector of ones.
\(\mathbf h\)\(N\times 1\) holdings, \(h_n\) the fraction of portfolio value in asset \(n\).
\(\mathbf e\)\(N\times 1\) vector of ones, \((1,\dots,1)^{T}\). So \(\mathbf h^{T}\mathbf e\) is total holdings, and \(\mathbf h^{T}\mathbf e = 1\) says the portfolio is fully invested.
\begin{align} \text{Portfolio excess return:}\quad & r_P = \mathbf h_P^{T}\mathbf r \tag{1.1} \\[6pt] \text{Portfolio variance:}\quad & \sigma_P^{2} = \operatorname{Var}\!\left(\mathbf h_P^{T}\mathbf r\right) = \mathbf h_P^{T}\operatorname{Var}(\mathbf r)\,\mathbf h_P = \mathbf h_P^{T}\mathbf V\mathbf h_P \tag{1.2} \\[6pt] \text{Covariance between two portfolios:}\quad & \operatorname{Cov}(r_P, r_Q) = \mathbf h_P^{T}\mathbf V\mathbf h_Q \tag{1.3} \\[6pt] \text{Exposure}\text{ of }P\text{ to }\mathbf a\text{:}\quad & a_P = \mathbf h_P^{T}\mathbf a = \mathbf a^{T}\mathbf h_P \tag{1.4} \end{align}

(1.2) and (1.3) are both linearity of covariance applied twice; see appendix C.

Definition

The characteristic portfolio of \(\mathbf a\), written \(\mathbf h_a\), is the minimum-variance portfolio with unit exposure to \(\mathbf a\):

\[ \min_{\mathbf h}\ \sigma_{\mathbf h}^{2} \;=\; \min_{\mathbf h}\ \mathbf h^{T}\mathbf V\mathbf h \qquad \text{s.t.}\qquad \mathbf h^{T}\mathbf a = 1 \tag{1.5} \]

No budget constraint \(\mathbf h^{T}\mathbf e = 1\), so \(\mathbf h_a\) need not be fully invested; and no long-only constraint \(h_n \ge 0\), so shorting and leverage are permitted.

Subscripts on \(r\). A subscript on \(r\) names a portfolio, so \(r_P = \mathbf h_P^{T}\mathbf r\) by (1.1); \(r_n\) with an asset index is the exception, meaning entry \(n\) of \(\mathbf r\). In particular \(r_a = \mathbf h_a^{T}\mathbf r\) is the return on the characteristic portfolio, not an asset return. Note that \(a_n\), asset \(n\)'s attribute value, is a different object from \(r_a\).

02 First-Order Conditions via the Lagrangian

(1.5) is a constrained minimization problem. The Lagrangian converts it into a system of equations.

\[ L(\mathbf h,\theta) = \tfrac12\,\mathbf h^{T}\mathbf V\mathbf h - \theta\left(\mathbf h^{T}\mathbf a - 1\right) \tag{2.1} \] \[ \frac{\partial L}{\partial \theta} = 0 \;\Longrightarrow\; \mathbf a^{T}\mathbf h_a = 1 \tag{2.2} \] \begin{align} \frac{\partial L}{\partial \mathbf h} &= \mathbf 0 && \text{first-order condition in }\mathbf h \\[4pt] \frac{\partial}{\partial \mathbf h}\left[\tfrac12\,\mathbf h^{T}\mathbf V\mathbf h - \theta\left(\mathbf h^{T}\mathbf a - 1\right)\right] &= \mathbf 0 && \text{substituting (2.1)} \\[4pt] \tfrac12\left(2\,\mathbf V\mathbf h_a\right) - \theta\,\mathbf a &= \mathbf 0 && \text{by (A.2) and (A.1)} \\[4pt] \mathbf V\mathbf h_a &= \theta\,\mathbf a \tag{2.3} \end{align}

using \(\partial(\mathbf h^{T}\mathbf V\mathbf h)/\partial\mathbf h = 2\mathbf V\mathbf h\). See appendix A for that derivative. Because \(\mathbf V \succ 0\), the objective is strictly convex and the constraint is affine, so these conditions are not merely necessary but sufficient: they pin down the unique minimizer of (1.5), rather than a stationary point that might be a saddle.

Note: \(\mathbf h_a\) has not been solved for. (2.3) leaves it inside a matrix product, and \(\theta\) is still unknown — so it fixes \(\mathbf h_a\)'s direction, parallel to \(\mathbf V^{-1}\mathbf a\), but not its length. The next two sections work with it: §03 reads it as a condition on covariances and identifies \(\theta\) as the portfolio's own variance, and §04 turns them into the beta identity. None of it inverts \(\mathbf V\). Appendix B does the solving, two ways, for when the closed form is wanted.

03 Covariance and Risk

\(\mathbf V\mathbf h\) carries two interpretations: marginal variance (3.1) and covariance with the portfolio (3.2). Both hold for any portfolio, with no optimization involved. Imposing (2.3) then gives two results about the characteristic portfolio in particular: each asset's covariance with \(r_a\) is proportional to that asset's attribute (3.3), and \(\theta\) is the variance of \(r_a\) (3.4).

Marginal variance (3.1). Differentiating (1.2) with respect to \(\mathbf h\) gives \(2\mathbf V\mathbf h\) (see appendix A). Entry \(n\) is

\[ \frac{\partial\sigma_P^{2}}{\partial h_{Pn}} = 2\left(\mathbf V\mathbf h_P\right)_n \tag{3.1} \]

the change in portfolio variance from holding a little more of asset \(n\). So \(\mathbf V\mathbf h_P\) is the vector of marginal risk contributions, up to the factor of 2.

Covariance with the portfolio (3.2). Write out that same entry \((\mathbf V\mathbf h_P)_n\) as a sum, using linearity of covariance (appendix C):

\[ \left(\mathbf V\mathbf h_P\right)_n = \sum_m V_{nm}h_{Pm} = \sum_m \operatorname{Cov}(r_n,r_m)\,h_{Pm} = \operatorname{Cov}\!\Big(r_n,\ \textstyle\sum_m h_{Pm} r_m\Big) = \operatorname{Cov}(r_n, r_P) \tag{3.2} \]

So \(\mathbf V\mathbf h_P\) is also the vector of covariances between each asset and the portfolio itself.

Setting the two interpretations equal shows that an asset's marginal contribution to portfolio variance is proportional to its covariance with the portfolio:

\[ \frac{\partial\sigma_P^{2}}{\partial h_{Pn}} \;\propto\; \operatorname{Cov}(r_n, r_P) \]

Now impose (2.3). Two independent things can be done with it. Component-wise it stays \(N\) equations, one per asset; contracted with \(\mathbf h_a\) it collapses to a single scalar. Neither derivation below uses the other.

Entry by entry.

\begin{align} \operatorname{Cov}(r_n, r_a) &= \left(\mathbf V\mathbf h_a\right)_n && \text{(3.2) at }\mathbf h_P = \mathbf h_a \\[4pt] &= \left(\theta\,\mathbf a\right)_n && \text{by (2.3)} \\[4pt] &= \theta\,a_n && \text{for every asset }n \tag{3.3} \end{align}

Left-multiplied. Multiply (2.3) through by \(\mathbf h_a^{T}\) and apply the constraint (2.2):

\begin{align} \mathbf V\mathbf h_a &= \theta\,\mathbf a && \text{(2.3)} \\[4pt] \mathbf h_a^{T}\mathbf V\mathbf h_a &= \theta\,\mathbf h_a^{T}\mathbf a && \text{left-multiply by }\mathbf h_a^{T} \\[4pt] \sigma_a^{2} &= \theta\cdot 1 && \text{by (1.2) and (2.2)} \\[4pt] \sigma_a^{2} &= \theta \tag{3.4} \end{align}

So the two conclusions are:

04 Exposure is beta

For any two returns beta is defined as the covariance ratio \(\beta_{X,Y} \equiv \operatorname{Cov}(X,Y)/\operatorname{Var}(Y)\) — the population slope of regressing \(X\) on \(Y\), equivalently the coefficient minimizing \(\mathbb E[(X-\beta Y)^{2}]\). Nothing about markets or equilibrium is assumed; it is a projection coefficient. Both arguments are returns, so a beta "against a portfolio" always means against that portfolio's return: \(\beta_{n,a}\) is shorthand for beta of \(r_n\) against \(r_a\), defined in §01.

Asset level. Divide (3.3) by \(\theta\). Then use (3.4), which says dividing by \(\theta\) is dividing by \(\sigma_a^{2}\), so the left side is exactly asset \(n\)'s beta:

\begin{align} \frac{\operatorname{Cov}(r_n, r_a)}{\theta} &= a_n && \text{(3.3), divided by }\theta \\[4pt] \frac{\operatorname{Cov}(r_n, r_a)}{\sigma_a^{2}} &= a_n && \text{by (3.4), }\theta = \sigma_a^{2} \\[4pt] \beta_{n,a} &= a_n \tag{4.1} \end{align}

Every asset's beta against \(r_a\) is its own attribute value.

Portfolio level. The same holds for any portfolio \(P\). Generalizing (4.1), apply the definition to \(r_P\) against \(r_a\), using the covariance form (1.3):

\[ \beta_{P,a} \equiv \frac{\operatorname{Cov}(r_P, r_a)}{\sigma_a^{2}} = \frac{\mathbf h_P^{T}\mathbf V\mathbf h_a}{\sigma_a^{2}} \tag{4.2} \]

(4.2) collapses two ways, asset by asset and in matrix form.

Asset by asset.

\begin{align} \beta_{P,a} &= \frac{\operatorname{Cov}(r_P, r_a)}{\sigma_a^{2}} && \text{(4.2)} \\[4pt] &= \frac{1}{\sigma_a^{2}}\sum_n h_{Pn}\operatorname{Cov}(r_n, r_a) && \text{by (C.1)} \\[4pt] &= \sum_n h_{Pn}\,\frac{\operatorname{Cov}(r_n, r_a)}{\sigma_a^{2}} && \sigma_a^{2}\text{ is a constant} \\[4pt] &= \sum_n h_{Pn}\,\beta_{n,a} && \text{each term is an asset beta} \\[4pt] &= \sum_n h_{Pn}\,a_n && \text{by (4.1)} \\[4pt] &= a_P && \text{by (1.4)} \end{align}

In matrix form. One step — do not expand \(\mathbf h_a\), use (2.3) directly:

\begin{align} \mathbf h_P^{T}\mathbf V\mathbf h_a &= \mathbf h_P^{T}\left(\theta\,\mathbf a\right) = \theta\,\mathbf h_P^{T}\mathbf a = \theta\,a_P && \text{by (2.3), then (1.4)} \\[4pt] \beta_{P,a} &= \frac{\theta\,a_P}{\sigma_a^{2}} = \frac{\theta\,a_P}{\theta} = a_P && \text{by (4.2), then (3.4)} \end{align}
Exposure = beta
\[ \beta_{P,a} = a_P \tag{4.3} \]

Why this is not a coincidence. In the geometry of appendix B, \(\beta_{P,a}\) is the coefficient in the projection of \(\mathbf h_P\) onto \(\mathbf h_a\) measured in the covariance inner product, while \(a_P = \mathbf a^{T}\mathbf h_P\) is the plain product. (4.3) says these are the same number — which is identity (B.5), read again. The attribute \(\mathbf a\) measures exposure in the ordinary metric and \(\mathbf h_a\) measures it in the covariance metric; they agree because \(\mathbf h_a\) was built by converting the one into the other.

05 The Global Minimum-Variance Portfolio

Take the attribute to be \(\mathbf e\), the vector of ones. Its exposure \(e_P = \mathbf h_P^{T}\mathbf e\) is total holdings, so unit exposure means fully invested, and the characteristic portfolio of \(\mathbf e\) — call it \(C\) — is the minimum-variance portfolio among all fully invested portfolios: the global minimum-variance portfolioglobal meaning no expected-return target is imposed, only the budget constraint. Putting \(\mathbf a = \mathbf e\) into (B.2) and (B.3):

\[ \mathbf h_C = \frac{\mathbf V^{-1}\mathbf e}{\mathbf e^{T}\mathbf V^{-1}\mathbf e}, \qquad \sigma_C^{2} = \frac{1}{\mathbf e^{T}\mathbf V^{-1}\mathbf e} \tag{5.1} \]

And by (4.3), \(\beta_{P,C} = e_P = 1\) for every fully invested portfolio \(P\), whatever else it holds. Equivalently, straight from (2.3): \(\mathbf V\mathbf h_C = \sigma_C^{2}\,\mathbf e\) — \(C\) has the same covariance with every asset.

06 Why it matters

The map \(\mathbf a \mapsto \mathbf h_a\) defined by (1.5) is a dictionary, and \(\mathbf V\) does the translating: an attribute \(\mathbf a\) goes in, a holdings vector \(\mathbf h_a\) comes out, and \(\mathbf a\) reads back off that portfolio's covariances by (2.3). Attribute and holdings are the same object written two ways — a score per asset, or a position you can hold. Three reusable facts.

  1. \(\mathbf h_a \propto \mathbf V^{-1}\mathbf a\). Every minimum-risk-per-unit-of-something portfolio has this shape; only the normalizer changes.
  2. The Lagrange multiplier is the variance. \(\theta = \sigma_a^{2}\) by (3.4), and (B.3) evaluates it, so \(1/(\mathbf a^{T}\mathbf V^{-1}\mathbf a)\) is a risk number rather than just algebra.
  3. Exposure to an attribute equals beta against that attribute's characteristic portfolio.

The third fact means any cross-sectional characteristic can be restated as a beta. Anything you can say about betas (hedging, attribution, decomposition) you can say about characteristics. Say the attribute is book-to-price and the mandate is no net value tilt, \(a_P = 0\). By (4.3) that is the same requirement as \(\beta_{P,a} = 0\): neutrality to a score becomes an ordinary hedge against one portfolio, \(\mathbf h_a\), which can be sized and traded like any other.

07 Assumptions

  1. \(\mathbf V\) positive definite. A covariance matrix is only guaranteed PSD; PD is what makes \(\mathbf V^{-1}\) exist and the minimizer unique. It fails outright once \(N\) exceeds the sample length.
  2. \(\mathbf a \neq \mathbf 0\) for feasibility, and \(\mathbf a^{T}\mathbf V^{-1}\mathbf a > 0\) for (B.1) — the second follows from the first plus PD.
  3. The sign convention on \(\theta\). Writing the constraint term as \(-\theta(\mathbf h^{T}\mathbf a - 1)\) is what makes \(\theta\) come out positive and equal to \(\sigma_a^{2}\); the opposite sign flips it.
  4. No budget or sign constraints. \(\mathbf h_a\) need not sum to 1 and need not be long-only.
  5. Beta here is pure covariance algebra. No equilibrium, no expected returns, no CAPM content.

A Appendix — the matrix derivatives used

Two derivatives are all the matrix calculus (2.3) needs. Each is a one-liner once written entry by entry, which is also the quickest way to re-derive them cold rather than recall them.

Layout convention. For scalar \(f\) and column vector \(\mathbf x\) (\(N\times1\)), \(\partial f/\partial\mathbf x\) is the \(N\times1\) column of partials \((\partial f/\partial x_k)\).

(A.1) Linear form. \(f = \mathbf b^{T}\mathbf x = \sum_i b_i x_i\), so \(\partial f/\partial x_k = b_k\). A scalar equals its own transpose, so \(\mathbf x^{T}\mathbf b = \mathbf b^{T}\mathbf x\) and the two orderings differentiate alike:

\[ \frac{\partial}{\partial\mathbf x}\left(\mathbf b^{T}\mathbf x\right) = \frac{\partial}{\partial\mathbf x}\left(\mathbf x^{T}\mathbf b\right) = \mathbf b \tag{A.1} \]

(A.2) Quadratic form. \(f = \mathbf x^{T}\mathbf A\mathbf x = \sum_i\sum_j x_i A_{ij} x_j\). Differentiating in \(x_k\) hits the sum twice — once through \(i=k\), once through \(j=k\):

\[ \frac{\partial f}{\partial x_k} = \sum_j A_{kj}x_j + \sum_i x_i A_{ik} = \left(\mathbf A\mathbf x\right)_k + \left(\mathbf A^{T}\mathbf x\right)_k \] \[ \frac{\partial}{\partial\mathbf x}\left(\mathbf x^{T}\mathbf A\mathbf x\right) = \left(\mathbf A + \mathbf A^{T}\right)\mathbf x \;=\; 2\mathbf A\mathbf x \quad\text{when } \mathbf A = \mathbf A^{T} \tag{A.2} \]

For general \(\mathbf A\) the factor is \((\mathbf A+\mathbf A^{T})\), and only for symmetric \(\mathbf A\) does it collapse to \(2\mathbf A\mathbf x\). This is the step where "\(\mathbf V\) symmetric" is spent.

Applying them to (2.3)

\[ L(\mathbf h,\theta) = \underbrace{\tfrac12\,\mathbf h^{T}\mathbf V\mathbf h}_{\text{(A.2)},\ \mathbf A=\mathbf V} - \theta\big(\underbrace{\mathbf h^{T}\mathbf a}_{\text{(A.1)},\ \mathbf b=\mathbf a} - 1\big) \] \[ \frac{\partial L}{\partial\mathbf h} = \tfrac12\left(2\mathbf V\mathbf h\right) - \theta\,\mathbf a = \mathbf V\mathbf h - \theta\,\mathbf a \] \[ \frac{\partial L}{\partial\mathbf h} = \mathbf 0 \;\Longrightarrow\; \mathbf V\mathbf h_a = \theta\,\mathbf a \tag{2.3} \]

The \(-1\) is constant in \(\mathbf h\) and drops; the \(\tfrac12\) cancels the 2 from (A.2), which is all that convention is for.

Two transpose facts used elsewhere. \(\mathbf V\) symmetric \(\Rightarrow\) \(\mathbf V^{-1}\) symmetric: transpose \(\mathbf V\mathbf V^{-1} = \mathbf I\) to get \((\mathbf V^{-1})^{T}\mathbf V^{T} = (\mathbf V^{-1})^{T}\mathbf V = \mathbf I\), so \((\mathbf V^{-1})^{T} = \mathbf V^{-1}\). And \((\mathbf A\mathbf B)^{T} = \mathbf B^{T}\mathbf A^{T}\) gives \((\mathbf V^{-1}\mathbf a)^{T} = \mathbf a^{T}\mathbf V^{-1}\).

B Appendix — solving for \(\mathbf h_a\), two ways

Nothing in the main line needs an explicit \(\mathbf h_a\): §03 and §04 run on (2.3) alone. The closed form is still worth having, and deriving it twice separates what is calculus from what is geometry.

Method 1 — elimination, from the first-order conditions

§02 produced two conditions and nothing else: (2.3), which is \(N\) equations, and (2.2), which is one. The unknowns are the \(N\) components of \(\mathbf h_a\) plus the scalar \(\theta\) — a square system, \(N+1\) by \(N+1\), and the rest is elimination.

Step 1 — eliminate \(\mathbf h_a\). \(\mathbf V\) is invertible, so (2.3) gives \(\mathbf h_a = \theta\,\mathbf V^{-1}\mathbf a\). Putting that into (2.2) leaves \(\theta\) as the only unknown:

\[ \theta\,\mathbf a^{T}\mathbf V^{-1}\mathbf a = 1 \qquad\Longrightarrow\qquad \theta = \frac{1}{\mathbf a^{T}\mathbf V^{-1}\mathbf a} \tag{B.1} \]

Step 2 — substitute \(\theta\) back. Putting (B.1) into \(\mathbf h_a = \theta\,\mathbf V^{-1}\mathbf a\) removes \(\theta\):

Characteristic portfolio of \(\mathbf a\)
\[ \mathbf h_a = \frac{\mathbf V^{-1}\mathbf a}{\mathbf a^{T}\mathbf V^{-1}\mathbf a} \;=\; \theta\,\mathbf V^{-1}\mathbf a \tag{B.2} \]

The direction of \(\mathbf h_a\) is \(\mathbf V^{-1}\mathbf a\); the constraint only fixes its length, and the denominator is exactly the normalizer that sets \(\mathbf a^{T}\mathbf h_a = 1\).

Step 3 — read off the risk. (3.4) already gave \(\sigma_a^{2} = \theta\), and (B.1) gives \(\theta\):

Variance of \(\mathbf h_a\)
\[ \sigma_a^2 = \theta = \frac{1}{\mathbf a^{T}\mathbf V^{-1}\mathbf a}, \qquad \sigma_a = \left(\mathbf a^{T}\mathbf V^{-1}\mathbf a\right)^{-1/2} \tag{B.3} \]

Method 2 — without calculus

Method 1 produces \(\mathbf V^{-1}\mathbf a\) but does not explain it. This route gets the same answer from linear algebra alone, and says what \(\mathbf V^{-1}\mathbf a\) is: the constraint plane's normal direction, measured in the geometry \(\mathbf V\) defines.

Step 1 — \(\mathbf V\) defines a geometry in which length is risk

Because \(\mathbf V \succ 0\), the form \(\langle\mathbf x,\mathbf y\rangle_V \equiv \mathbf x^{T}\mathbf V\mathbf y\) satisfies the three axioms of an inner product: it is symmetric because \(\mathbf V = \mathbf V^{T}\), bilinear because matrix multiplication is, and positive definite because \(\mathbf x^{T}\mathbf V\mathbf x > 0\) for \(\mathbf x \neq \mathbf 0\). Every inner product induces a length by \(\lVert\mathbf x\rVert^{2} = \langle\mathbf x,\mathbf x\rangle\). Here that length is exactly the portfolio's risk:

\[ \lVert\mathbf h\rVert_V^{2} = \langle\mathbf h,\mathbf h\rangle_V = \mathbf h^{T}\mathbf V\mathbf h = \sigma_{\mathbf h}^{2} \tag{B.4} \]

So the problem (1.5) reads: among the feasible portfolios, find the shortest one.

Step 2 — rewrite the constraint in that same geometry

The objective is now stated with \(\langle\cdot,\cdot\rangle_V\), but the constraint \(\mathbf h^{T}\mathbf a = 1\) is still stated with the ordinary product. Put them in the same terms by inserting \(\mathbf V\mathbf V^{-1} = \mathbf I\):

\[ \mathbf h^{T}\mathbf a = \mathbf h^{T}\mathbf V\mathbf V^{-1}\mathbf a = \big\langle\, \mathbf h,\ \mathbf V^{-1}\mathbf a \,\big\rangle_V \tag{B.5} \]

This is the step that produces \(\mathbf V^{-1}\mathbf a\), and it is worth saying what it means. A plane \(\{\mathbf h : \mathbf h^{T}\mathbf a = 1\}\) has a normal direction, but "normal" depends on which inner product you measure with. Under the ordinary product the normal is \(\mathbf a\); under \(\langle\cdot,\cdot\rangle_V\) it is \(\mathbf n \equiv \mathbf V^{-1}\mathbf a\). The plane is the same set of portfolios either way — only the description changes, and the objective measures with \(\langle\cdot,\cdot\rangle_V\), so \(\mathbf n\) is the description that matters.

Step 3 — the problem is now standard

Substituting (B.4) and (B.5), the problem is

\[ \min_{\mathbf h}\ \lVert\mathbf h\rVert_V \qquad\text{s.t.}\qquad \langle\mathbf h,\mathbf n\rangle_V = 1 \]

Minimizing \(\lVert\mathbf h\rVert_V\) rather than \(\lVert\mathbf h\rVert_V^{2}\) changes nothing, since \(t \mapsto t^{2}\) is increasing on \(t \ge 0\) and so has the same minimizer.

Step 4 — Cauchy–Schwarz bounds the objective from below

In any inner product space, \(|\langle\mathbf x,\mathbf y\rangle| \le \lVert\mathbf x\rVert\,\lVert\mathbf y\rVert\), with equality if and only if the two vectors are parallel. Apply it to any feasible \(\mathbf h\), whose inner product against \(\mathbf n\) is fixed at 1:

\[ 1 = \langle\mathbf h,\mathbf n\rangle_V \;\le\; \lVert\mathbf h\rVert_V\,\lVert\mathbf n\rVert_V \qquad\Longrightarrow\qquad \lVert\mathbf h\rVert_V \;\ge\; \frac{1}{\lVert\mathbf n\rVert_V} \]

So \(1/\lVert\mathbf n\rVert_V\) is a floor on risk that no feasible portfolio can beat. Nothing yet says it is reached.

Step 5 — the floor is attained, by exactly one portfolio

Step 4 gives a floor, but nothing yet says any portfolio reaches it. Suppose some feasible \(\mathbf h\) sits exactly at it, \(\lVert\mathbf h\rVert_V = 1/\lVert\mathbf n\rVert_V\). Then

\begin{align} \lVert\mathbf h\rVert_V\,\lVert\mathbf n\rVert_V &= \frac{1}{\lVert\mathbf n\rVert_V}\cdot\lVert\mathbf n\rVert_V = 1 && \text{it sits at the floor} \\[4pt] \langle\mathbf h,\mathbf n\rangle_V &= 1 && \text{it is feasible} \\[4pt] \langle\mathbf h,\mathbf n\rangle_V &= \lVert\mathbf h\rVert_V\,\lVert\mathbf n\rVert_V && \text{so the two agree} \end{align}

Cauchy–Schwarz has become an equality, which happens only for parallel vectors. So any \(\mathbf h\) at the floor must be a multiple \(\mathbf h = c\,\mathbf n\), and the constraint then fixes \(c\):

\begin{align} \langle c\,\mathbf n,\ \mathbf n\rangle_V &= 1 && \text{the constraint} \\[4pt] c\,\lVert\mathbf n\rVert_V^{2} &= 1 && \text{scalars come out of the inner product} \\[4pt] c &= \frac{1}{\lVert\mathbf n\rVert_V^{2}} \end{align}

So there is exactly one candidate, \(\mathbf h_a = \mathbf n/\lVert\mathbf n\rVert_V^{2}\). Check that it does reach the floor:

\[ \lVert\mathbf h_a\rVert_V = \frac{\lVert\mathbf n\rVert_V}{\lVert\mathbf n\rVert_V^{2}} = \frac{1}{\lVert\mathbf n\rVert_V} \]

It is feasible and it attains the lower bound, so it is a minimizer. And it is the only one: reaching the floor required being parallel to \(\mathbf n\), and the constraint left just one multiple.

Step 6 — evaluate

Only \(\lVert\mathbf n\rVert_V^{2}\) is left to compute, and the two \(\mathbf V\)'s cancel against the \(\mathbf V^{-1}\)'s:

\[ \lVert\mathbf n\rVert_V^{2} = \big\langle \mathbf V^{-1}\mathbf a,\ \mathbf V^{-1}\mathbf a\big\rangle_V = \mathbf a^{T}\mathbf V^{-1}\mathbf V\mathbf V^{-1}\mathbf a = \mathbf a^{T}\mathbf V^{-1}\mathbf a \]

Substituting back reproduces both earlier results, with no Lagrangian and no derivatives anywhere:

\[ \mathbf h_a = \frac{\mathbf V^{-1}\mathbf a}{\mathbf a^{T}\mathbf V^{-1}\mathbf a} \;\;\text{(B.2)}, \qquad \sigma_a = \lVert\mathbf h_a\rVert_V = \frac{1}{\lVert\mathbf n\rVert_V} = \big(\mathbf a^{T}\mathbf V^{-1}\mathbf a\big)^{-1/2} \;\;\text{(B.3)} \]

C Appendix — covariance is linear in holdings

For deterministic weights \(c_n\) and any return \(Y\), start from the definition of covariance and use linearity of expectation twice:

\begin{align} \operatorname{Cov}\!\Big(\sum_n c_n r_n,\ Y\Big) &= \mathbb E\Big[\Big(\sum_n c_n r_n - \mathbb E\Big[\sum_n c_n r_n\Big]\Big)\left(Y - \mathbb EY\right)\Big] && \text{definition} \\[4pt] &= \mathbb E\Big[\Big(\sum_n c_n\left(r_n - \mathbb Er_n\right)\Big)\left(Y - \mathbb EY\right)\Big] && \text{center; }c_n\text{ constant} \\[4pt] &= \mathbb E\Big[\sum_n c_n\left(r_n - \mathbb Er_n\right)\left(Y - \mathbb EY\right)\Big] && \text{multiply through} \\[4pt] &= \sum_n c_n\,\mathbb E\big[\left(r_n - \mathbb Er_n\right)\left(Y - \mathbb EY\right)\big] && \text{linearity of }\mathbb E \\[4pt] &= \sum_n c_n \operatorname{Cov}(r_n, Y) && \text{definition} \tag{C.1} \end{align}

The same holds in the second argument by the symmetry of covariance, and applying it in both gives (1.2) and (1.3). Only linearity of expectation is used — no independence and no distributional assumption — but the weights must be deterministic. If holdings responded to returns, \(c_n\) could not leave the expectation.