Skip to content

Optimization algorithm to determine HDIs does not converge well #13

@michaelosthege

Description

@michaelosthege

While working on #12 I added tests and came up with one to check if calibr8.core._get_hdi is doing a good job.

It does not.

I believe the scipy.optimize.fmin doesn't cope well with the switching inside the hdi_objective, or at least not in combination with the step-function like area calculation by _interval_prob.

Some starting points to fix this:

  • Make a detailed heatmap visualization of the objective function that's being optimized, based on a coarse x_cdf and cdf input. (Hypothesis: It's not smooth, but has step functions in one dimension.)
  • Adapt test_interval_prob to an interpolation that should give much more accurate results compared to the step-function. (Also nicer conceptually!)
  • Use the triangular example from test_get_hdi as a starting point, because it's HDI is easy to determine analytically (centerline of the triangle to its right flank).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinghelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions