Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alternate Framing #8

Open
Foggalong opened this issue Apr 30, 2024 · 5 comments
Open

Alternate Framing #8

Foggalong opened this issue Apr 30, 2024 · 5 comments
Labels
enhancement New feature or request hold Will not / cannot be worked on yet

Comments

@Foggalong
Copy link
Owner

Foggalong commented Apr 30, 2024

We frame this problem as the return maximization problem

$$ \max_w \left(\min_{\mu\in U_{\mu}} \left(w^{T}\mu \right) - \frac{\lambda}{2}w^{T}\Sigma w\right) \text{ subject to }\ Mw = \begin{bmatrix} 0.5 \ 0.5\end{bmatrix},\ l\leq w\leq u, $$

which after some wrangling becomes

$$ \max_{w,z} \left(w^{T}\bar{\mu} - \kappa z - \frac{\lambda}{2}w^{T}\Sigma w\right) \ \text{ subject to }\ z^2\geq w^{T}\Omega w,\ Mw = \begin{bmatrix} 0.5 \ 0.5\end{bmatrix},\ l\leq w\leq u. $$

and this seems to work well. When we first started though, we initially framed the problem as the risk minimization problem

$$ \min_w \left(\frac{1}{2}w^{T}\Sigma w - \lambda\max_{\mu\in U_{\mu}} \left(w^{T}\mu \right)\right)\ \text{ subject to }\ Mw = \begin{bmatrix} 0.5 \ 0.5\end{bmatrix},\ l\leq w\leq u, $$

which after similar (though slightly gnarlier) wrangling becomes

$$ \min_{w,z} \left(\frac{1}{2}w^{T}\Sigma w - \lambda w^{T}\mu - \lambda\kappa z\right)\ \text{ s.t. }\ z^2\leq w^{T}\Omega w,\ Mw = \begin{bmatrix} 0.5 \ 0.5\end{bmatrix},\ l\leq w\leq u. $$

We dropped this because the mathematics was far fiddlier, but as a non-crucial extension, it could be interesting to add a similar solver for this formulation to the module. I don't anticipate that being beneficial any more, but in the Jupyter testing I did note that it ran significantly slower on this formulation and it could be interesting to back that with analysis.

@Foggalong Foggalong added enhancement New feature or request hold Will not / cannot be worked on yet labels Apr 30, 2024
@jajhall
Copy link
Collaborator

jajhall commented Apr 30, 2024

In the return maximization problem, $z^2\geq w^{T}\Omega w$ (for non-negative $z$) is the set of points on/above the triangular cone $z=\sqrt{w^{T}\Omega w}$, which is a convex set. So, for example, it can be approximated by linearizations.

In the risk minimization problem, $z^2\leq w^{T}\Omega w$ (for non-negative $z$) is the set of points on/below the triangular cone $z=\sqrt{w^{T}\Omega w}$, which is not a convex set. Hence the optimization is vastly more difficult.

@jajhall
Copy link
Collaborator

jajhall commented Apr 30, 2024

For an appropriate value of $\lambda$, the return maximization problem should be equivalent, so the two problems should be identical from the point of view of convexity. Since the $z^2\leq w^{T}\Omega w$ constraint comes from optimization of the uncertainty term being $kz$ for $z=\sqrt{w^{T}\Omega w}$, are you sure there's not a minus sign error that puts you on the wrong side of $z^2= w^{T}\Omega w$?

@Foggalong
Copy link
Owner Author

the two problems should be identical from the point of view of convexity

That's a good shout, I think I may have been thinking of the wrong way around. If I get round it this checking for a sign error is where I'll start 👍

@gregorgorjanc
Copy link
Collaborator

Skimming through the above notes, shouldn’t the last expression involve mubar instead of mu?

@Foggalong
Copy link
Owner Author

@gregorgorjanc it should indeed, I think that's a copy past error because the code did use $\bar{\mu}$.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request hold Will not / cannot be worked on yet
Projects
None yet
Development

No branches or pull requests

3 participants