Skip to content
This repository was archived by the owner on Apr 11, 2023. It is now read-only.
This repository was archived by the owner on Apr 11, 2023. It is now read-only.

Adaptive temperature spacing not improving convergence of model evidence #15

@ljschumacher

Description

@ljschumacher

I have been using you code for model selection, for which I have been calculating evidence using the built-in thermodynamic integration.

However I am finding that the adaptive temperature spacing does not improve the convergence of the model evidence estimates. I don't have a minimal working example, but here is the result from my actual use case:
evidence_convergence_nsamples_nw40_adaptive.pdf
Blue solid line is with adaptive=True, orange dashed line is adaptive=False. I've checked that the non-adaptive case has converged after 40k samples, but the adaptive case doesn't seem to. They both select the same model as best (shown above), but arrive at a different value for the evidence

Is there an example code I can run to test this adaptive sampling?

I'm also wondering about this comment in ptemcee/ensemble.py:

def step(self):
        self._stretch(self.x, self.logP, self.logl)
        self.x = self._temperature_swaps(self.x, self.logP, self.logl)
        ratios = self.swaps_accepted / self.swaps_proposed

        # TODO: Should the notion of a 'complete' iteration really include the temperature adjustment?
        if self.adaptive and self.ntemps > 1:
            dbetas = self._get_ladder_adjustment(self.time,
                                                 self.betas,
                                                 ratios)
            self.betas += dbetas
            self.logP += self._tempered_likelihood(self.logl, betas=dbetas)

        self.time += 1

Are you sure it is implemented correctly?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions