nimbleHMC

nimbleHMC: An R package for Hamiltonian Monte Carlo sampling in nimble - Published in JOSS (2024)

https://github.com/nimble-dev/nimblehmc

Science Score: 100.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    1 of 3 committers (33.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Scientific Fields

Physics Physical Sciences - 40% confidence
Last synced: 4 months ago · JSON representation ·

Repository

HMC and other derivative-based MCMC sampling algorithms for the nimble package

Basic Info
  • Host: GitHub
  • Owner: nimble-dev
  • License: gpl-3.0
  • Language: R
  • Default Branch: master
  • Size: 5.85 MB
Statistics
  • Stars: 13
  • Watchers: 3
  • Forks: 1
  • Open Issues: 6
  • Releases: 0
Created about 4 years ago · Last pushed 7 months ago
Metadata Files
Readme License Citation

README.md

nimbleHMC

tests

DOI

Provides derivative-based MCMC sampling algorithms and convenence functions, for use in conjunction with the MCMC engine avaialble in the nimble package. Sampling algorithms include:

  • No-U-Turn Hamiltonian Monte Carlo (NUTS) sampler
  • Historical implementation of the original No-U-Turn HMC (NUTS_classic) sampler
  • Langevin sampler (under development)

See the HMC section of the Nimble User Manual for more information and examples.

General package information about nimbleHMC, and the complete API for package functions are available on CRAN.

Additional information about the nimblepackage itself is available at the nimble website.

Installation and Package Requirements

Use of nimbleHMC requires installation of the core nimble package. Detailed instructions for installing nimble are available in the nimble package README.

nimbleHMC must be used with version 1.0.0 or higher of nimble, or the latest version available on CRAN. To check the version number of the currently installed version of nimble, use:

r packageVersion("nimble")

The nimbleHMC package itself can be installed directly from CRAN, using:

r install.packages("nimbleHMC")

Automatic Differentiation

nimbleHMC makes use of the automatic differentiation (AD) feature of nimble, which was released in nimble version 1.0.0. See Chapter 16: Automatic Derivatives of the Nimble User Manual for more information about the capabilities of the AD system, and how to use the AD system to calculate derivatives of functions written as nimble algorithms, as well as derivatives of model calculations.

For using HMC sampling on a model, derivative calculations need to be built into for the model object. This is accomplished using the buildDerivs = TRUE argument in the call to nimbleModel as: nimbleModel(code, constants, data, inits, buildDerivs = TRUE)

For using HMC sampling on models that include user-defined distributions, you will need to include the argument buildDerivs = TRUE in the definition of your distribution, as:

dmy_distribution <- nimbleFunction( run = function(x = double(), param = double(), log = integer(0, default = 0)) { ... }, buildDerivs = TRUE )

Contributing and Support

Contributions to the nimbleHMC package should be submitted via pull request on GitHub. For additional guideliens on making contributions, please see the contributing guidelines for the nimble package.

Issues, feature requests, or bugs should be reported using GitHub issues, submitted to the nimbleHMC repository.

For additional support using nimble or nimbleHMC, please see the Nimble User Manual. Any additional questions can be submitted to the nimble-users Google group.

Owner

  • Name: nimble-dev
  • Login: nimble-dev
  • Kind: organization

JOSS Publication

nimbleHMC: An R package for Hamiltonian Monte Carlo sampling in nimble
Published
July 10, 2024
Volume 9, Issue 99, Page 6745
Authors
Daniel Turek ORCID
Lafayette College, USA
Perry de Valpine ORCID
University of California, USA
Christopher J. Paciorek
University of California, USA
Editor
Johanna Bayer ORCID
Tags
hierarchical model Markov chain Monte Carlo Hamiltonian Monte Carlo nimble

Citation (CITATION.cff)

cff-version: "1.2.0"
authors:
- family-names: Turek
  given-names: Daniel
  orcid: "https://orcid.org/0000-0002-1453-1908"
- family-names: Valpine
  given-names: Perry
  name-particle: de
  orcid: "https://orcid.org/0000-0002-8329-6796"
- family-names: Paciorek
  given-names: Christopher J.
contact:
- family-names: Turek
  given-names: Daniel
  orcid: "https://orcid.org/0000-0002-1453-1908"
doi: 10.5281/zenodo.12658544
message: If you use this software, please cite our article in the Journal of Open Source Software.
preferred-citation:
  authors:
  - family-names: Turek
    given-names: Daniel
    orcid: "https://orcid.org/0000-0002-1453-1908"
  - family-names: Valpine
    given-names: Perry
    name-particle: de
    orcid: "https://orcid.org/0000-0002-8329-6796"
  - family-names: Paciorek
    given-names: Christopher J.
  date-published: 2024-07-10
  doi: 10.21105/joss.06745
  issn: 2475-9066
  issue: 99
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 6745
  title: "nimbleHMC: An R package for Hamiltonian Monte Carlo sampling in nimble"
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.06745"
  volume: 9
title: "nimbleHMC: An R package for Hamiltonian Monte Carlo sampling in nimble"

GitHub Events

Total
  • Watch event: 1
  • Delete event: 1
  • Issue comment event: 8
  • Push event: 21
  • Pull request event: 6
  • Create event: 3
Last Year
  • Watch event: 1
  • Delete event: 1
  • Issue comment event: 8
  • Push event: 21
  • Pull request event: 6
  • Create event: 3

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 211
  • Total Committers: 3
  • Avg Commits per committer: 70.333
  • Development Distribution Score (DDS): 0.109
Past Year
  • Commits: 14
  • Committers: 3
  • Avg Commits per committer: 4.667
  • Development Distribution Score (DDS): 0.429
Top Committers
Name Email Commits
danielturek d****k@g****m 188
Christopher Paciorek p****k@s****u 15
perrydv p****v 8
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 41
  • Total pull requests: 36
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 8 days
  • Total issue authors: 8
  • Total pull request authors: 4
  • Average comments per issue: 3.1
  • Average comments per pull request: 2.22
  • Merged pull requests: 29
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 7
  • Average time to close issues: N/A
  • Average time to close pull requests: 13 days
  • Issue authors: 1
  • Pull request authors: 2
  • Average comments per issue: 1.0
  • Average comments per pull request: 1.71
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • paciorek (28)
  • matt-graham (7)
  • yangchino1 (1)
  • pehkawn (1)
  • larryshamalama (1)
  • dougwyu (1)
  • danielturek (1)
  • kabarigou (1)
Pull Request Authors
  • danielturek (39)
  • perrydv (9)
  • paciorek (3)
  • larryshamalama (2)
Top Labels
Issue Labels
cleanup (9) question (3) documentation (2) enhancement (1)
Pull Request Labels

Dependencies

nimbleHMC/DESCRIPTION cran
  • R >= 3.5.0 depends
  • nimble * depends
  • methods * imports
  • testthat * suggests
.github/workflows/tests.yaml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/upload-artifact main composite
  • r-lib/actions/setup-pandoc v1 composite
  • r-lib/actions/setup-r v1 composite