willvousden / ptemcee

A parallel-tempered version of emcee.
MIT License
58 stars 29 forks source link

Additional content to thermodynamic integration method #9

Closed stevereyes01 closed 5 years ago

stevereyes01 commented 5 years ago

Hi,

I've been doing a bit of work in gravitational wave astronomy to use emcee_pt (and in the future pt_emcee) in PyCBC. Specifically, I'm interested in developing the thermodynamic integration method.

https://github.com/willvousden/ptemcee/blob/master/ptemcee/util.py#L97

There's been a bit of work in the statistics literature to try to make numerical estimations of the integral more accurate.

(Silia Vitoratou and Ioannis Ntzoufras 2013) [https://arxiv.org/pdf/1308.6753.pdf] and (Calderhead and Girolami, 2009) [https://core.ac.uk/download/pdf/80850.pdf] provide a method for giving the correction to the trapezoidal rule for estimating the marginalized likelihood in TI.

They use the Kullback-Liebler Divergence (https://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence) to give the correction factor to the trapezoidal rule for discretization error.

Additionally, they identify another source of error in the TI numerical integral that comes from MCMC variance. The only place that I've yet seen a way to estimate the MCMC error for TI is listed in (Jeff Annis and Nathan Evans 2018)[https://psyarxiv.com/r8sgn/], see equations 35 - 37. This source of error for TI isn't accounted for in the current module.

Would you all be interested in making some of these additions or in me putting in a pull request to incorporate these results?


Additionally, I'd like to add the stepping-stone algorithm which uses the same multi-tempered log likelihoods to compute the evidence (and seems to match TI very well). So, I can make a pull request for that if people are interested.

stevereyes01 commented 5 years ago

Whoops, forgot to add in a link to the steppingstone algorithm method (Patricio Maturana Russel, Renate Meyer, John Veitch, Nelson Christensen 2018) [https://arxiv.org/abs/1810.04488].

Anthony-Margotta commented 5 years ago

As a user of this package, I am definitely interested in seeing these additions made

WuShichao commented 5 years ago

Good.

ljschumacher commented 5 years ago

@stevereyes01 how is progress with implementing these features in ptemcee? Or should I switch to pycbc?

stevereyes01 commented 5 years ago

Hi @ljschumacher , I haven't heard back from anyone in ptemcee. You can use the module in https://github.com/gwastro/pycbc/blob/master/pycbc/inference/evidence.py for calculating the evidence for a model using thermodynamic integration or steppingstone algorithm. There are some nuances to what I wrote there. Though using those modules is a bit hardcoded to the emcee_pt file formatting. If you want to discuss that we should open a thread else-where.

I'm going to close this issue since it's not gotten any attention in > 10 months.