Normalizing Tangency Portfolio Weights from Excess Returns
Summary
The document explains how to calculate the weights of a tangency portfolio from expected excess returns and the inverse covariance matrix. Multiplying the inverse covariance matrix by the excess return vector produces an unnormalized vector of asset allocations. Premultiplying by a vector of ones sums those entries, yielding a scalar denominator; dividing by that sum normalizes the weights so they add to one.
A worked two risky asset example gives the resulting unnormalized values and normalized weights, matching the stated allocation. The explanation clarifies the matrix notation and normalization step. It assumes the supplied inputs and inverse covariance matrix are correct, and it does not discuss constraints, estimation error, or how the risk-free rate and expected returns are estimated.
Key ideas
- The inverse covariance matrix multiplied by excess returns gives unnormalized tangency allocations.
- Premultiplying by a vector of ones sums the entries of that allocation vector.
- Dividing each entry by the sum normalizes risky asset weights to total one.
- The numerical example illustrates the normalization for two risky assets.
Tags
Full text
# Calculating tangency portfolio weights with the given information? (2risky +riskfree asset)
# Calculating tangency portfolio weights with the given information? (2risky +riskfree asset)
We have 2 risky and 1 risk-free asset.
```
E1 = 4%, STD1=10%
E2 = 5.5%, STD2 = 20%
rf=1.5%
```
The covariance matrix and it's inverse are given:
```
|0.01 0.006|
|0.006 0.04|
```
inverse:
```
|109.9 -16.5|
|-16.5 27.5|
```
ue (vector of excess returns)
```
(2.5 4)
```
Now the formula for the weights of the tangency portfolio should be:
$\frac{\Sigma^{-1} U_e}{1^T \Sigma^{-1} U_e}$
But using this formula I don't get the solution for the weights which should be (0.752,0.248)
Also what does $1^T$ or $1'$ even do? It's just the transposed vector of 1s. I looked at 500 books, videos, notes but none of them had this clearly explained so hopefully someone here could help.
## Answer by nbbo2 (score 3)
https://quant.stackexchange.com/a/74432
The denominator $1^T \Sigma^{-1} U_e$ is a scalar number. First you multiply the inverse by $U_e$ giving a column vector which I will call $X$, then premultiplication of this vector by $1^T$ basically amounts to adding the entries in this vector.
The numerator $\Sigma^{-1} U_e$ is a vector, the $X$ vector we just talked about, it is just a matrix times column_vector product.
This whole procedure of dividing a vector $X$ by $1^ TX$ is just a trick to normalize the elements of $X$ so that they add up to 1.
In this case the numerator is the vector (208.75 68.75). The sum of its elements (i.e. the denominator) is 277.5. Dividing the vector by 277.5 we get the weights (0.752252252 0.247747748) which add up to 1 as required.Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.