Skip to content

An R package of helper functions for Bayesian analyses

License

Unknown, MIT licenses found

Licenses found

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

poissonconsulting/extras

Repository files navigation

extras extras website

Lifecycle: stable R-CMD-check Codecov test coverage CRAN status CRAN downloads

extras provides helper functions for Bayesian analyses.

In particular it provides functions to summarise vectors of MCMC (Monte Carlo Markov Chain) samples, draw random samples from various distributions and calculate deviance residuals as well as R translations of some BUGS (Bayesian Using Gibbs Sampling), JAGS (Just Another Gibbs Sampler), STAN and TMB (Template Model Builder) functions.

Installation

To install the developmental version from GitHub

# install.packages("pak")
pak::pak("poissonconsulting/extras")

Demonstration

Summarise MCMC Samples

The extras package provides functions to summarise MCMC samples like svalue() which gives the surprisal value (Greenland, 2019)

library(extras)
#> 
#> Attaching package: 'extras'
#> The following object is masked from 'package:stats':
#> 
#>     step

set.seed(1)
x <- rnorm(100)
svalue(rnorm(100))
#> [1] 0.3183615
svalue(rnorm(100, mean = 1))
#> [1] 1.704015
svalue(rnorm(100, mean = 2))
#> [1] 3.850857
svalue(rnorm(100, mean = 3))
#> [1] 5.073249

Distributions

Implemented distributions with functions to draw random samples, calculate log-likelihoods, and calculate deviance residuals for include:

  • Bernoulli
  • Beta-binomial
  • Gamma
  • Gamma-Poisson
  • Zero-inflated gamma-Poisson
  • Log-Normal
  • Negative Binomial
  • Normal
  • Poisson
  • Zero-inflated Poisson
  • Skew Normal
  • Student’s t

R translations

The package also provides R translations of BUGS (and JAGS) functions such as pow() and log<-.

pow(10, 2)
#> [1] 100

mu <- NULL
log(mu) <- 1
mu
#> [1] 2.718282

Numericise R Objects

Atomic vectors, matrices, arrays and data.frames of appropriate classes can be converted to numeric objects suitable for Bayesian analysis using the numericise() (and numericize()) function.

numericise(
  data.frame(
    logical = c(TRUE, FALSE),
    factor = factor(c("blue", "green")),
    Date = as.Date(c("2000-01-01", "2000-01-02")),
    hms = hms::as_hms(c("00:00:02", "00:01:01"))
  )
)
#>      logical factor  Date hms
#> [1,]       1      1 10957   2
#> [2,]       0      2 10958  61

References

Greenland, S. 2019. Valid P-Values Behave Exactly as They Should: Some Misleading Criticisms of P-Values and Their Resolution With S-Values. The American Statistician 73(sup1): 106–114.

Contribution

Please report any issues.

Pull requests are always welcome.

Code of Conduct

Please note that the extras project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.