Skip to content

Julia package for simulation-based, likelihood-free parameter inference using neural networks.

License

Notifications You must be signed in to change notification settings

msainsburydale/NeuralEstimators.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

516 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NeuralEstimators

CI codecov

NeuralEstimators facilitates neural methods for simulation-based parameter inference. These methods are likelihood-free and amortised, in the sense that, once the neural networks are trained on simulated data, they enable rapid inference across arbitrarily many observed data sets in a fraction of the time required by conventional approaches.

The package supports:

  • Neural Bayes estimators (NBEs), which transform data into functionals of the posterior distribution;
  • Neural posterior estimators (NPEs), which perform approximate posterior inference via KL-divergence minimisation; and
  • Neural ratio estimators (NREs), which approximate the likelihood-to-evidence ratio and thereby enable frequentist or Bayesian inference through various downstream algorithms.

See the documentation to get started, and the step-by-step introductory notebook tutorial (runnable in Google Colab) for a worked example.

Installation

To install the package, please first install the current stable release of Julia. Then, one may install the current stable version of the package using the following command inside Julia:

using Pkg; Pkg.add("NeuralEstimators")

Alternatively, one may install the current development version using the command:

using Pkg; Pkg.add(url = "https://github.com/msainsburydale/NeuralEstimators.jl")

R interface

A convenient interface for R users is available on CRAN.

Supporting and citing

This software was developed as part of academic research. If you would like to support it, please star the repository. If you use it in your research or other activities, please also use the following citations.

@Manual{,
    title = {{NeuralEstimators}: Likelihood-Free Parameter Estimation
      using Neural Networks},
    author = {Matthew Sainsbury-Dale},
    year = {2024},
    note = {R package version 0.1-2},
    url = {https://CRAN.R-project.org/package=NeuralEstimators},
    doi = {10.32614/CRAN.package.NeuralEstimators},
  }

@Article{,
    title = {Likelihood-Free Parameter Estimation with Neural {B}ayes
      Estimators},
    author = {Matthew Sainsbury-Dale and Andrew Zammit-Mangion and
      Raphael Huser},
    journal = {The American Statistician},
    year = {2024},
    volume = {78},
    pages = {1--14},
    doi = {10.1080/00031305.2023.2249522},
  }

Contributing

If you encounter a bug or have a suggestion, please consider opening an issue or submitting a pull request. A todo list can be found at TODO.md. Instructions for contributing to the documentation can be found in docs/README.md. When adding functionality to the package, you may wish to add unit tests to the file test/runtests.jl. You can then run these tests locally by executing the following command from the root folder:

julia --project=. -e "using Pkg; Pkg.test()"

Papers using NeuralEstimators

  • Likelihood-free parameter estimation with neural Bayes estimators [paper] [code]

  • Neural methods for amortized inference [paper][code]

  • Neural Bayes estimators for irregular spatial data using graph neural networks [paper][code]

  • Neural Bayes estimators for censored inference with peaks-over-threshold models [paper] [code]

  • Neural parameter estimation with incomplete data [paper][code]

  • Neural Bayes inference for complex bivariate extremal dependence models [paper][code]

  • Fast likelihood-free parameter estimation for Lévy processes [paper]

About

Julia package for simulation-based, likelihood-free parameter inference using neural networks.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages