Code Monkey home page Code Monkey logo

epiabc's Introduction

EpiABC

Approximate Bayesian Computation for EpiModel on High-Performance Computing Clusters

R build status

Implementation of Approximate Bayesian Computation with Sequential Monte Carlo Methods (ABC-SMC) optimized for use with EpiModel R package epidemic simulations running on High-Performance Computing (HPC) cluster environments such as MPI and Slurm. This package uses AMC-SMC algorithms originally developed for the EasyABC R package.

epiabc's People

Contributors

smjenness avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

dth2 jrgant

epiabc's Issues

version of sbatch_master that writes out sbatch script across waves

Like this

sbatch -p ckpt -A csde-ckpt --array=1-72 --job-name=wave0 --ntasks-per-node=28 --mem=100G --time=1:00:00 --export=ALL,wave=0 runsim.sh
sbatch -p ckpt -A csde-ckpt --array=1-58 --depend=afterany:582211 --job-name=wave1 --ntasks-per-node=28 --mem=100G --time=1:00:00 --export=ALL,wave=1 runsim.sh
sbatch -p ckpt -A csde-ckpt --array=1-58 --depend=afterany:582283 --job-name=wave2 --ntasks-per-node=28 --mem=100G --time=1:00:00 --export=ALL,wave=2 runsim.sh
sbatch -p ckpt -A csde-ckpt --array=1-58 --depend=afterany:582295 --job-name=wave3 --ntasks-per-node=28 --mem=100G --time=1:00:00 --export=ALL,wave=3 runsim.sh
sbatch -p ckpt -A csde-ckpt --array=1-58 --depend=afterany:582306 --job-name=wave4 --ntasks-per-node=28 --mem=100G --time=1:00:00 --export=ALL,wave=4 runsim.sh
sbatch -p ckpt -A csde-ckpt --array=1-58 --depend=afterany:582345 --job-name=wave5 --ntasks-per-node=28 --mem=100G --time=1:00:00 --export=ALL,wave=5 runsim.sh

Can do lookup of depend based on jobname with this apparently:

sbatch --dependency=$(squeue --noheader --format %i --name <JOB_NAME>)

EpiABC Posterior Performance

When running EpiABC to estimate EpiModel parameters, EpiABC produce sample posteriors whose mean accurately hits target statistics. However, when using estimated model parameters, EpiModel has not been able to replicate this performance in practice, e.g. fails to achieve equilibrium within a prespecified time frame.

Calibrating to i.prev by default

I used EpiABC to calibrate my model to the prevalence of diagnosed infection (scripts here), but when I simulated using the means of the posterior distribution, I found that true prevalence (i.prev, in blue) instead of diagnosed prevalence (in red) is matching the target value. I calibrated to prevalence in years 70-79 (prevalence is still fluctuating at this point, which is related to a separate issue that I'm addressing now, but the mean true prevalence in these years is pretty closet to the target value).
image

I couldn't find anything in my scripts that would explain this, so on a whim, I tried defining i.prev in my model to be the same as diagnosed prevalence, and I defined a new variable for true prevalence. With this change, diagnosed prevalence (in red) is close(ish) my calibration target value of 0.0819 in years 70-79.
image

This suggests to me that there may be something hard-coded in the EpiABC functions to fit to "i.prev" by default.

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.