Ranking views using entropy pooling in quant analytics

Ranking views using entropy pooling in quant analytics

Hi everybody,

I wanted to ask you about ranking views on expectations (as in http://symmys.com/node/158), because I encountered an unexpected problem. I apply the entropy pooling on a portfolio of N stocks, and I use only the simple-returns as risk-factors:

– View specified as a full-ranking ( E(r1) > E(r2) > … > E(rN) )
– Entropy pooling to get the probabilities in order to compute the objective (E(ri) for all i in (1, 2, …, N)) and the constraints (CVaR-controlled allocation)

Unfortunately, the numerical minimization always give expectations like E(r1) = E(r2) = … = E(rN) (the constraint always “hit the barrier”). When I set a view like E(r1) > E(r2) and leave the other assets free, I also get E(r1) = E(r2).

Thus, I went back to the two assets – two data points – two views (probabilities sum up to one, and ranking view between the assets), and I found E(r1) = E(r2) analytically.

Then I was able to find an analytical formula for the dual formulation of a symmetrized version of the KL-divergence, but the results (both numerical and analytical) are exactly the same as with entropy pooling.

Did you also notice this problem? Does someone have a solution?

==

The issue you encountered depends on how the ranking view relates to the prior distribution of the returns.
Let us consider the bivariate case. If your prior is already such that E(r1) > E(r2), and your view is in the same direction, i.e. E(r1) >= E(r2), then the posterior will be equal to the prior, and the view will be satisfied as a strict inequality E(r1) > E(r2) in the posterior.
If on the other hand with the above prior your view is E(r1)<= E(r2) and thus it contradicts the prior, then the posterior will feature E(r1)=E(r2), which is the closest solution to the prior that satisfy the view.

==

I got another conceptual question about the entropy pooling.

Suppose you have T observations of two risk-factors X and Y (that is (X_i, Y_i), for i in [1,2,…,T]) which are completely independant (take the dummy case of a two independent gaussians for example). Their prior (standard) esperance estimator is E(X) = 1/T * sum(X_i) = x and E(Y) = = 1/T * sum(Y_i) = y.

Let’s assume now that we want to implement a view on X such that E*(X) = x*, that is we get a new set of probabilities p_i (i in [1,2,…,T]) which are different (even if those deviations are very small) from 1/T. Thus, if we use those new probabilities for Y too as it seems to be the case in your case studies, we have E*(Y) = y*, different from E(Y) = y.

How is that possible since the two risk-factors are assumed to be independent? Is there a way to take the dependence structure between the risk-factors into account when applying the pooled probabilities within this framework?

==

In the gaussian case, you could use the analytic formula. If you apply the analytic formula just to x (ie. you apply it univariately), then it devolves to just whatever your view is. That means it will not impact y.

For the full algorithm, the reason why you don’t get the right answer is because by treating them separately you’re not letting the optimizer know that there’s no correlation between the two assets. The EP algorithm minimizes the difference between two distributions. If it doesn’t know what one of the distributions is, then how can it be expected to minimize anything?

All you have to do is just gather x and y (and z, etc) to a single matrix before applying the algorithm

==

OK, the gaussian case is obvious, but:

“If it doesn’t know what one of the distributions is, then how can it be expected to minimize anything?

All you have to do is just gather x and y (and z, etc) to a single matrix before applying the algorithm. ”

I understand you and this is basically what I did, but if you don’t express views on y (and z, etc), it won’t change anything. My problem lies in the fact that this algorithm modifies only one set of probabilities for all risk-factors. If you take two independent risk-factors X and Y with different dynamics (e.g. X ~ arch(10) and Y ~ garch(1,1) with independent innovations), and express a view only on X, how can you let the optimizer know about the distribution of Y? The idea of numerical entropy minimization is to set views as linear constraints of a convex optimization problem, but the risk-factors on which no views are expressed are not an input of the algorithm, or am I missing something?

HOW DO YOU START A PROFITABLE TRADING BUSINESS? Read more NOW >>>

NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!

Entropy Pooling in Quant analytics—> Portfolio Optimization?

Entropy Pooling in Quant analytics—> Portfolio Optimization?

I confess I am charmed by the speed and elegance of the entropy-pooling approach. In Meucci’s paper “Fully Flexible Views – Theory and Practice” paper it states in the Introduction: “The output [of entropy pooling] is a distribution, which we call “posterior”, that incorporates all inputs and can be used for risk management and portfolio optimization.” Exactly how does one perform asset allocation based on the updated probabilities for the various joint-scenarios? For example — suppose one has J = 50,000 joint scenarios. Entropy pooling furnishes revised probabilities corresponding to these scenarios. How does construct an optimal portfolio (i.e. max some utility function choosing security weights) given these J discrete scenarios? Does one optimize a single probability weighted average utility function (consisting of 50,000 components!)? Or does one use a re-sampling approach (i.e. optimize each joint-scenario) and probability weight each of the J-weight vectors?

==

You can use those probabilities to create (effectively) a weighted average mean or weighted average covariance matrix. Then do optimization on those, rather than the whole thing. My recommendation is to take a look at some of the code he provides in the examples. Sometimes things are easier to understand from the perspective of code.

More generally, the benefit of a scenario approach is that it is much better for calculating Expected Shortfall, which is critical for accounting for tail risk of your portfolio.

==

I have gone thru “Entropy Pooling – Theory & Practice”, “Fully Flexible Extreme Views”, “Flexible Probabilities”, “Robust Bayesian Allocation”, etc. including the Matlab code. There is no case where an optimal allocation is identified based on a numerical or monte carlo (as opposed to analytical) joint distribution. I’ll take another gander but if something comes to mind, please let me know. BTW, I’ve enjoyed your other contributions on this site. Keep it up and thanks for the suggestion!

==

Go in the Entropy Pooling one, check RankingInformatiom\EffcientFrontier.m or ButterflyTrading\LongShortMeanCVaRFrontier.m, both basically do what you’re trying to understand.

==

First I admit that I did not study in detail paper and code of the EP approach.

However, if you have scenarios and probabilities a natural choice is to perform asset allocation in a linear programming framework. See “Portfolio Construction and Risk Budgeting“ (B. Scherer) the chapter on Scenario Optimization

HOW DO YOU START A PROFITABLE TRADING BUSINESS? Read more NOW >>>

NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!