Skip to content
/ bennu Public

Bayesian Estimation of Naloxone Numbers Underreporting

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

sempwn/bennu

Repository files navigation

bennu

Bayesian Estimation of Naloxone Numbers Underreporting (BENNU)

The package name comes from the Welsh word for “to finish” (pronounced benn-y)

R-CMD-check Lifecycle: experimental Codecov test coverage GitHub

An R package 📦 for generating estimates of total naloxone kit numbers distributed and used from naloxone kit orders data.

Installation

You can install the released version of bennu from CRAN with:

install.packages("bennu")

And the development version from GitHub with:

# install.packages("devtools")
devtools::install_github("sempwn/bennu")

Example

This example runs output for test data generated by the package:

library(bennu)
library(rstan)
#> Loading required package: StanHeaders
#> 
#> rstan version 2.26.22 (Stan version 2.26.1)
#> For execution on a local, multicore CPU with excess RAM we recommend calling
#> options(mc.cores = parallel::detectCores()).
#> To avoid recompilation of unchanged Stan programs, we recommend calling
#> rstan_options(auto_write = TRUE)
#> For within-chain threading using `reduce_sum()` or `map_rect()` Stan functions,
#> change `threads_per_chain` option:
#> rstan_options(threads_per_chain = 1)
#> Do not specify '-march=native' in 'LOCAL_CPPFLAGS' or a Makevars file
library(bayesplot)
#> This is bayesplot version 1.10.0
#> - Online documentation and vignettes at mc-stan.org/bayesplot
#> - bayesplot theme set to bayesplot::theme_default()
#>    * Does _not_ affect other ggplot2 plots
#>    * See ?bayesplot_theme_set for details on theme setting

rstan_options(auto_write = TRUE)
options(mc.cores = parallel::detectCores(logical = FALSE))

## basic example code
d <- generate_model_data()
# note iter should be at least 2000 to generate a reasonable posterior sample
fit <- est_naloxone(d,iter=500)
mcmc_pairs(fit, pars = c("sigma","mu0","zeta"),
           off_diag_args = list(size = 1, alpha = 0.5))

An overall summary of the model output can also be provided as a datframe

kit_summary_table(fit, data = d)
#> # A tibble: 1 × 6
#>   Probability of kit use if dist…¹ Estimated as distrib…² Proportion kits dist…³
#>   <glue>                           <glue>                 <glue>                
#> 1 65.34% (95% CrI: 18.31% - 96.36… 24,909.00 (95% CrI: 2… 58.72% (95% CrI: 58.1…
#> # ℹ abbreviated names: ¹​`Probability of kit use if distributed`,
#> #   ²​`Estimated as distributed`,
#> #   ³​`Proportion kits distributed that are reported`
#> # ℹ 3 more variables: `Estimated kits used` <glue>,
#> #   `Proportion kits used that are reported` <glue>,
#> #   `Proportion kits ordered that are used` <glue>

Getting help

If you encounter a clear bug, please file an issue with a minimal reproducible example on GitHub.