{"id":49339855,"url":"https://github.com/jaspervrugt/abc-pmc","last_synced_at":"2026-04-27T03:04:44.739Z","repository":{"id":208192633,"uuid":"608916832","full_name":"jaspervrugt/ABC-PMC","owner":"jaspervrugt","description":"Approximation Bayesian Computation: Population Monte Carlo in MATLAB and Python","archived":false,"fork":false,"pushed_at":"2025-03-04T07:15:52.000Z","size":335,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-04T07:35:37.863Z","etag":null,"topics":["approximate-bayesian-computation","epsilon-adaptation","likelihood-free-inference","model-diagnostics","population-monte-carlo","posterior-sampling","summary-metrics","transition-density"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jaspervrugt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-03T01:45:19.000Z","updated_at":"2025-03-04T07:15:56.000Z","dependencies_parsed_at":"2023-11-20T09:28:04.248Z","dependency_job_id":"ddd93e4d-f996-4ff3-96ea-54101971d130","html_url":"https://github.com/jaspervrugt/ABC-PMC","commit_stats":null,"previous_names":["jaspervrugt/abc-pmc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jaspervrugt/ABC-PMC","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaspervrugt%2FABC-PMC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaspervrugt%2FABC-PMC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaspervrugt%2FABC-PMC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaspervrugt%2FABC-PMC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jaspervrugt","download_url":"https://codeload.github.com/jaspervrugt/ABC-PMC/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaspervrugt%2FABC-PMC/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32320688,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["approximate-bayesian-computation","epsilon-adaptation","likelihood-free-inference","model-diagnostics","population-monte-carlo","posterior-sampling","summary-metrics","transition-density"],"created_at":"2026-04-27T03:04:43.958Z","updated_at":"2026-04-27T03:04:44.731Z","avatar_url":"https://github.com/jaspervrugt.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ABC-PMC: Population Monte Carlo Sampler of Hydrograph Signatures in MATLAB and Python\n\n## Description\n\nApproximate Bayesian Computation avoids the use of an explicit likelihood function in favor a (number of) summary statistics that measure the distance between the model simulation and the data. This ABC approach is a vehicle for diagnostic model calibration and evaluation for the purpose of learning and model correction. The ABC-PMC toolbox in MATLAB and Python implements the Population Monte Carlo sampler to approximate the posterior distribution of the summary metrics using the distance function $\\rho(\\cdot)$ and sequence of successively smaller epsilon values, $\\epsilon_{1},\\ldots,epsilon_{J}$. Samples are accepted if $\\rho(\\cdot) \\leq \\epsilon$. The PMC sampler starts out as ABC-REJ during the first iteration, $j = 1$, but using a much larger initial value for $\\epsilon$, the acceptance threshold. During each successive next step (iteration), $j = (2,\\ldots,J)$, the value of $\\epsilon$ is decreased and the proposal distribution, $q_{j}(\\theta_{k}^{j−1},\\cdot) = N_{d}(\\theta_{k}^{j−1},\\Sigma^{j})$ adapted using $\\Sigma^{j} = \\text{Cov}(\\theta_{1}^{j−1},\\ldots,\\theta_{N}^{j−1})$ with $\\theta_{k}$ drawn from a multinomial distribution, $F(\\theta_{1:N}^{j−1} \\vert w_{1:N}^{j-1})$ where $w_{1:N}^{j-1}$ are the posterior weights $(w_{l}^{j-1} \\geq 0; \\sum_{l=1}^{N} w_{l}^{j-1} = 1)$. Through a sequence of successive (multi)normal proposal distributions, the prior sample is thus iteratively refined until a sample of the posterior distribution is obtained. This approach, similar in spirit to the adaptive Metropolis sampler of Haario et al. (1999, 2001), receives a much higher sampling efficiency than ABC-REJ, particularly for cases where the prior sampling distribution $p(\\theta)$ is a poor approximation of the posterior distribution. Details of the ABC-PMC procedure are given in Appendix B of Sadegh and Vrugt (2013). Another significant improvement in efficiency is obtained from MCMC simulation using the DREAM$_{(ABC)}$ algorithm of Sadegh and Vrugt (2014). This code is part of DREAM-Suite.\n\n## Getting Started\n\n### Installing: MATLAB\n\n* Download and unzip the zip file 'MATLAB_code_ABC_PMC_V1.0.zip' in a directory 'ABC_PMC'\n* Add the toolbox to your MATLAB search path by running the script 'install_ABC_PMC.m' available in the root directory\n* You are ready to run the built-in examples\n\n### Executing program\n\n* After intalling, you can simply direct to each example folder and execute the local 'example_X.m' file\n* Please make sure you read carefully the instructions (i.e., green comments) in 'install_ABC_PMC.m'  \n\n### Installing: Python\n\n* Download and unzip the zip file 'Python_code_ABC_PMC_V1.0.zip' to a directory called 'ABC_PMC'\n\n### Executing program\n\n* Go to Command Prompt and directory of example_X in the root of ABC_PMC\n* Now you can execute this example by typing \"python example_X.py\".\n* Instructions can be found in the file 'ABC_PMC.py' \n  \n## Authors\n\n* Vrugt, Jasper A. (jasper@uci.edu) \n\n## Literature\n1. Turner, B.M, and T. van Zandt (2012), A tutorial on approximate Bayesian computation, _Journal of Mathematical Psychology_, 56, pp. 69-85\n2. Sadegh, M., and J.A. Vrugt (2014), Approximate Bayesian computation using Markov chain Monte Carlo simulation: DREAM_(ABC), _Water Resources Research_, https://doi.org/10.1002/2014WR015386\n3. Vrugt, J.A., and M. Sadegh (2013), Toward diagnostic model calibration and evaluation: Approximate Bayesian computation, _Water Resources Research_, 49, pp. 4335–4345, https://doi.org/10.1002/wrcr.20354\n4. Sadegh, M., and J.A. Vrugt (2013), Bridging the gap between GLUE and formal statistical approaches: approximate Bayesian computation, _Hydrology and Earth System Sciences_, 17, pp. 4831–4850\n5. Sisson, S.A., Y. Fan, and M.M. Tanaka (2007), Sequential Monte Carlo without likelihoods, _Proceedings of the National Academy of Sciences of the United States of America_, 104(6), pp. 1760-1765, https://doi.org/10.1073/pnas.0607208104\n\n## Version History\n\n* 1.0\n    * Initial Release\n    * Built-in Case Studies\n    * Basic Postprocessing\n    * Python Implementation\n\n## Built-in Case Studies\n\n1. Example 1: Toy example from Sisson et al. (2007)\n2. Example 2: Linear regression example from Vrugt and Sadegh (2013)\n3. Example 3: Hydrologic modeling using hydrograph functionals\n\n## Acknowledgments\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaspervrugt%2Fabc-pmc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaspervrugt%2Fabc-pmc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaspervrugt%2Fabc-pmc/lists"}