Code Monkey home page Code Monkey logo

abcdez.jl's Introduction

ABCdeZ.jl

CI codecov Documentation

Approximate Bayesian Computation (ABC) with differential evolution (de) moves and model evidence (Z) estimates.

ABCdeZ.jl offers Bayesian parameter estimation and model comparison/selection for inference problems with an intractable likelihood. Models only need to be simulated (instead of calculating the likelihood). Please visit the documentation (dev/stable) to get started.

The documentation will go through a minimal example (code also found in examples folder above) computing the posterior samples (Figure above) and evidences for two different models. Model evidences can be used to derive posterior model probabilities (Figure below) or Bayes Factors.

ABCdeZ.jl was developed @TSB by Maurice Langhinrichs and Nils Becker. This work is based on many people's previous achievements, particular some part of the code base was adapted from KissABC.jl; please visit the documentation for a complete list of references.

abcdez.jl's People

Contributors

mauricelanghinrichs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

hoefer-lab

abcdez.jl's Issues

Release v0.2.0

implements #5, to be released with v0.2.0 as new main feature; does not break previous code, but induces changed behaviour. Kmcmc steps may early exit due to new Kmcmc_min; output of abcdesmc! method now additionally contains Kmcmcs info.

@JuliaRegistrator register()

Adaptive number of MCMC steps in abcdesmc!

Look into the possibility to set a high Kmcmc keyword argument in abcdesmc! method, with an option (new keyword argument) to early exit the MCMC iterations when a sufficiently high number of acceptances (as provided/desired) has already been reached.

This may help to diversify particles better at the last epsilon steps (higher Kmcmc), without adding too much unnecessary computation load at the first iterations (using early exit). See into smc at KissABC where something similar exists.

Potentially also write the actual number of used MCMC steps into the results object (if verboseout=true).

Release v0.4.0

  • Addition of smooth and strict kernels (Epa, Indicator), including new tests.
  • Small change to make eps choice non-increasing in abcdesmc! method (no changed behaviour with previous default indicator kernel).

@JuliaRegistrator register()

TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.

If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.

If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Potential improvements for future releases

below a collection of potential improvements for future releases.

  • maybe turn off the default tuning of the proposal in the SMC method (shrinkage of gamma parameter). for large priors I noticed that the acceptance ratio can be low initially, causing a proposal shrinkage way too early. otherwise the shrinkage works nicely, but the default should be conservative.
  • maybe use the strict indicator kernel as default (IndicatorStrict0toϵ) for the SMC method. without strictness (i.e. with the current default Indicator0toϵ kernel) the SMC alg. sometimes gets stuck if particle numbers are on the lower side. disadvantage is that the non-strict kernel is better for small discrete problems where perfect convergence may be reached with ABC; but this case is rare in practice, hence I could just document the kernel choice more for directing users appropriately and switch to the strict kernel.
  • the strict kernel in the SMC method (see above, potential new default) will at some point kill all particles if eps is too low for the natural noise level (at posterior) of the model simulations. this is all fine in theory, but the method should handle these cases with a warning (or so) and still return the empty result without errors. currently it errors which can be annoying and might confuse users.
  • check again the base "particle operations" that were taken over from KissABC.jl for potential type instabilities of the tuple handlings. in case there are, check if they are relevant for performance. think about new implementation; should not affect user API much / at all.

any further suggestions are very very welcome!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.