Skip to content
All library documents

Entropy Pooling Views Can Depend on the Choice of Optimizer

Article Quant Q&A · Author: user3833612

Summary

The document describes a practical issue in implementing Meucci’s entropy pooling model. A user reports that imposing two inequality views on the expected return of the same asset causes an overflow in the SciPy optimization routine, although applying either one-sided view separately works. The example frames the views as upper and lower bounds on that asset’s expected return.

The accepted response reports resolving the problem by switching the optimizer from SLSQP to COBYLA, and attributes the failure to the optimizer rather than to the formulation of the views. This is a single implementation report, with no explanation of the numerical cause, comparative performance assessment, or evidence across other data and constraints. It offers a troubleshooting lead, not a general rule that one solver is preferable for entropy pooling or that every overflow reflects an optimizer defect.

Key ideas

  • The example applies two inequality constraints to the expected return of one asset in entropy pooling.
  • The reported overflow occurred with SLSQP when both sides of the view were active.
  • Switching to COBYLA reportedly resolved the implementation issue.
  • The report does not identify the numerical cause or establish which optimizer performs best generally.

Tags

Full text
# Entropy pooling multiple views on same asset faliure


# Entropy pooling multiple views on same asset faliure












I have implemented Meucci’s Entropy pooling model in Python. Well the codes run very well until I find out that when I apply two side views on the same asset, the scipy optimizer would report a overflow issue.for example, Here I am only showing my inequality views.A is the inequality view matrix and B is the corresponding values and X is my portfolio return matrix.X[:,0] is the first column of the matirx(the first asset).

```
    A=np.matrix(X[:,0],-X[:,0])
    B=[0.05,-0.08]
```

What is showing here is I have a view that the expected return of the first asset is between 0.05 and 0.08. However it wouldn’t work out. It would report a overflow issue. I am pretty sure my other codes are correct since if I only put one side view for one asset the model always gives me correct answers. But when I give two sides views the model just can’t work out. I suspect there must be something wrong in how I write two side views. I appreciate if someone could help.

## Answer by user3833612 (score 2, accepted)

https://quant.stackexchange.com/a/59299

Looks like the problem is solved when I changed the optimizer from “SLSQP” to “COBYLA”. So it is a optimizer issue not a view issue.

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.