Bayesian Inference.
Bayesian Inference Reimagined for R, Python and Julia
A unified probabilistic programming library bridging the gap between user-friendly R syntax and high-performance JAX computation.
Run bespoke models on CPU, GPU, or TPU with ease.
One Mental Model. Three Languages.
BayesianInference (BI) provides a unified experience across R, Python, and Julia. Whether you work in R's formula syntax, Python's object-oriented approach, or Julia's mathematical elegance, the model logic remains consistent.
- ✅ Zero Context Switching: Variable names, distribution signatures, and model logic remain consistent.
- ✅ NumPyro Power: Both interfaces compile down to XLA via JAX for blazing fast inference.
- ✅ Rich Diagnostics: Seamless integration with ArviZ for posterior analysis.
Compare the Syntax
| R Syntax | Python Syntax | Julia Syntax |
|---|---|---|
| | |
Built for Speed
Leveraging Just-In-Time (JIT) compilation, BI outperforms traditional engines on standard hardware and unlocks massive scalability on GPU clusters for large datasets.
Benchmark: Network Size 100 (Lower is Better)
| Engine | Execution Time | Relative Performance |
|---|---|---|
| STAN (CPU) | ████████████████████████████ | Baseline |
| BI (CPU) | ████████████ | ~2.5x Faster |
> Comparison of execution time for a Social Relations Model. Source: Sosa et al. (2025).
Installation & Setup
1. Install Package
Use devtools to pull the latest development version from GitHub.
if (!requireNamespace("devtools", quietly = TRUE)) install.packages("devtools")
devtools::install_github("https://github.com/BGN-for-ASNA/BIR")
2. Initialize Environment
Run the starting test to create the Python virtual environment managed by reticulate.
library(BayesianInference)
# Run the starting test to install Python dependencies
BI_starting_test()
3. Select Backend
Choose 'cpu', 'gpu', or 'tpu' when importing the library.
# Initialize on CPU (default) or GPU/TPU
m <- importBI(platform = 'cpu')
Features
Data Manipulation
- One-hot encoding
- Index variable conversion
- Scaling and normalization
Modeling (via NumPyro)
- Linear & Generalized Linear Models: Regression, Binomial, Poisson, Negative Binomial, etc.
- Hierarchical/Multilevel Models: Varying intercepts and slopes.
- Time Series & Processes: Gaussian Processes, Gaussian Random Walks, State Space Models.
- Mixture Models: GMM, Dirichlet Process Mixtures.
- Network Models: Network-based diffusion, Block models.
- Bayesian Neural Networks (BNN).
Diagnostics (via ArviZ)
- Posterior summary statistics and plots.
- Trace plots, Density plots, Autocorrelation.
- WAIC and LOO (ELPD) model comparison.
- R-hat and Effective Sample Size (ESS).
Available Distributions
The package provides wrappers for a comprehensive set of distributions from NumPyro.
Continuous
bi.dist.normal,bi.dist.uniform,bi.dist.student_tbi.dist.cauchy,bi.dist.halfcauchy,bi.dist.halfnormalbi.dist.gamma,bi.dist.inverse_gamma,bi.dist.exponentialbi.dist.beta,bi.dist.beta_proportionbi.dist.laplace,bi.dist.asymmetric_laplacebi.dist.log_normal,bi.dist.log_uniformbi.dist.pareto,bi.dist.weibull,bi.dist.gumbelbi.dist.chi2,bi.dist.gompertz
Discrete
bi.dist.bernoulli,bi.dist.binomialbi.dist.poisson,bi.dist.negative_binomialbi.dist.geometric,bi.dist.discrete_uniformbi.dist.beta_binomial,bi.dist.zero_inflated_poisson
Multivariate
bi.dist.multivariate_normal,bi.dist.multivariate_student_tbi.dist.dirichlet,bi.dist.dirichlet_multinomialbi.dist.multinomialbi.dist.lkj,bi.dist.lkj_choleskybi.dist.wishart,bi.dist.wishart_cholesky
Time Series & Stochastic Processes
bi.dist.gaussian_random_walkbi.dist.gaussian_state_spacebi.dist.euler_maruyamabi.dist.car(Conditional AutoRegressive)
Mixtures & Truncated
bi.dist.mixture,bi.dist.mixture_same_familybi.dist.truncated_normal,bi.dist.truncated_cauchybi.dist.lower_truncated_power_law
(See package documentation for the full list)
Documentation
For full documentation of functions and parameters, you can use the built-in R help or the package helper:
# Open package documentation
bi.doc()
# Help for a specific function
?bi.dist.normal
Platform Support
- ✅ Linux
- ✅ macOS
- ✅ Windows
GPU support available on compatible systems with JAX GPU installation.
Related Packages
BayesianInference (BIR)
Based on "The Bayesian Inference library for Python, R and Julia" by Sosa, McElreath, & Ross (2025).
Documentation | GitHub | Issues
© 2025 BayesianInference Team. Released under GPL-3.0.