Open
Description
Hi,
I am looking at the results of the sampling of my complicated problem (with results different from multinest gives me) and I was looking at diagnosing what's going on, so I looked at a few tests that surprised me (below).
First my problem: dimensionality 11, 2 periodic parameters, 2500 live points, I run with sampler 'unif' and dlogz_init=0.01
- I looked at the number of ellipsoids as a function of progression of the run. And to my surprise. I saw oscillations between 1 ellipsoid and 70 ellipsoids in. See
It doesn't mean it's necessarily wrong, but it is certainly worrisome. - I looked at the volume (logvol_tot) as a function of progression of the run.
Here you can see again oscillations in volume. - I decided to check for all the points in the run (base_u), compute in how many of different boundaries they are in. I.e. if everything is perfect the id of the point in the run and the number of boundaries they are in should be monotonically related.I.e. later points in the run should be basically in all the boundaries up to a given point.
Here you can clearly see the lack of monotonicity. And that even some of the latest live-points are not in previous bounds.
- Finally The 2d plot showing point id in the base_run vs boundary id showing fraction of points in the given boundary
Here again you see two problems: Many latest points are not in first boundaries.
And it looks like only those boundaries consisting of one ellipsoid are good (vertical stripes).
My thoughts on all this:
- I think either there is some over-agressive ellipsoidal shredding ( by design) or there is a bug somewhere in dealing with large number of ellipsoids
- I find the lack of diagnostics of these issues very concerning. I.e. basically there is no indication of these issues in the output. I think doing the containment checks for all boundaries is certainly doable and maybe a way forward. (I think it still may be better to do that with all the likelihood evaluations rather than live points, but it's better than nothing). Also huge oscillations in number of ellipsoids is certainly something that may need to be flagged/prevented.
- It is pretty useless to do add_batch() after a run like this, as it won't fix these issues.
- It may be useful to have a way to 'improve boundaries' after the run before doing add_batch (that's connected to the topic raised before)
- An alternative viewpoint may be -- the likelihood function is too complex, so tough luck, it'll be hard to sample no matter what.
- I obviously cannot 100% exclude some kind of non-deterministic bug in my likelihood function leading to observed behaviour, but I am reasonably certain that's not the case.
Activity