Comparing Maximum Diversification Portfolio Formulations
Summary
The document compares two proposed MATLAB formulations for finding a maximum diversification portfolio. One minimizes portfolio variance measured with a correlation matrix, then rescales the solution using asset volatilities. The other is intended to minimize variance using the covariance matrix with a volatility-weighted constraint. The question is whether scaling weights to fully invest in risky assets changes the optimization and which formulation is correct.
The response highlights a key distinction: the second paper’s formulation includes nonnegative weights, so it represents a short-sale-constrained maximum diversification portfolio. The first approach may instead describe an unconstrained version. That difference can produce different weights even when each implementation follows its source. The discussion does not resolve every detail of the MATLAB code or establish which objective the questioner intended; the correct formulation depends on the chosen constraints and definition of the portfolio.
Key ideas
- Maximum diversification can be formulated using either correlation or covariance quantities, with constraints affecting the result.
- A nonnegative-weight constraint excludes short positions and defines a constrained portfolio variant.
- Rescaling optimized weights to sum to one may change the optimization unless that normalization matches its constraints.
- Compare the mathematical objective and constraints in each source before treating the resulting portfolios as equivalent.
Tags
Full text
# Which Maximum Diversification Approach in MATLAB is correct?
# Which Maximum Diversification Approach in MATLAB is correct?
I am currently trying to find the portfolio weights of the Maximum Diversification Portfolio and found two approaches which result in different outcomes.
The first one is based on this paper:https://www.tobam.fr/wp-content/uploads/2014/12/TOBAM-JoPM-Maximum-Div-2008.pdf
Here I first calculate the assets weights in of synthetic assets and then covert them to an portfolio of real assets. According to the paper there is the possibility of being long or short in cash, but since I want to be fully invested in the risky assets I scale the weights to 1. My question is if this would be "allowed" without changing the optimization problem?
This is the objective function that I minimize:
```
function fval = md(corMat,w_md)
fval = w_md'*corMat*w_md;
end
```
And this is the optimization:
```
T = readtable('Data_test.xlsx');
mon_ret= tick2ret(T{:,3:end});
numReturns = size(mon_ret,1);
covMat = cov(mon_ret) ;
[corMat, std] = corrcov(covMat);
port_size = length(covMat) ;
Aeq = ones(1,port_size);
Beq = 1;
lbnds = zeros(1,port_size);
ubnds = ones (1,port_size);
n1 = 1.0/port_size;
w0 = repmat(n1, port_size, 1) ;
mdfunction = @(w_md) md(corMat, w_md);
w_md = fmincon(mdfunction, w0, ...
[], [], Aeq, Beq, lbnds, ubnds, []) ;
w_md = w_md./std;
w_md = w_md/sum(w_md);
```
The second approach is from this paper(p.21): http://www.qminitiative.org/UserFiles/files/FroidureSSRN-id1895459.pdf
I think I solved it accordingly with this approach:
Objective Function:
```
function fval = md2(covMat, w_md2)
fval = w_md2'*covMat*w_md2;
end
```
Non Linear Constraint:
```
function [c,ceq] = nlcon(w_md2,std)
c =[];
ceq = sum(w_md2'.*std)-1;
end
```
and the optimization:
```
md2function = @(w_md2) md(corMat, w_md2);
w_md2 = fmincon(md2function, w0, ...
[], [], Aeq, Beq, lbnds, ubnds, []) ;
w_md2 = w_md2/sum(w_md2);
```
Does anybody know which approach is correct or where my mistake is?
I`d appreciate every help!
Best regards
## Answer by develarist (score 1)
https://quant.stackexchange.com/a/46337
Is the formula for code #1 $\max D(S)=\frac{S^{\top}\Sigma_S}{\sqrt{S^{\top}V_S S}}$?
or is it $\max D(S)=\frac{1}{\sqrt{S^{\top}V_S S}}$ s.t. constraints $\Gamma$? Both appear on the same page, 41, in paper #1.
and is formula for code #2 $\min \frac{1}{2}\mathbf{w}^{\top}\Sigma\mathbf{w}$ s.t. $w_i\geq 0$, $\mathbf{w^{\top}}\boldsymbol{\sigma}=1$ from paper #2's appendix?
If so, the 2nd formula has a non-negativity constraint, making it the short-sale constrained MDP, which might be why it doesn't correspond to the 1st, if the 1st is the unconstrained MDP.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.