Description Details Author(s) References See Also Examples
rbiips is an interface with the Biips C++ libraries for analysing Bayesian graphical models using advanced particle methods.
Biips is a general software for Bayesian inference with interacting particle systems, a.k.a. sequential Monte Carlo (SMC) methods. It aims at popularizing the use of these methods to non-statistician researchers and students, thanks to its automated “black box” inference engine. It borrows from the BUGS/JAGS software, widely used in Bayesian statistics, the statistical modeling with graphical models and the language associated with their descriptions.
See the Biips website for more information.
The typical workflow is the following:
Define the model in BUGS language (see the JAGS User Manual for help) and the data.
Add custom functions or distributions with
biips_add_function
and biips_add_distribution
.
Compile the model with biips_model
Run inference algorithms:
Analyse sensitivity to parameters with biips_smc_sensitivity
.
Run SMC filtering and smoothing algorithms with biips_smc_samples
.
Run particle MCMC algorithms with biips_pimh_samples
or
biips_pmmh_samples
.
Diagnose and analyze the output obtained as smcarray
and
mcmcarray
objects with biips_diagnosis
,
biips_summary
, biips_density
,
biips_hist
and biips_table
Marc Fuentes
rbiips development was initiated by the research team ALEA at Inria Bordeaux Sud-Ouest.
Adrien Todeschini, François Caron, Marc Fuentes, Pierrick Legrand, Pierre Del Moral (2014). Biips: Software for Bayesian Inference with Interacting Particle Systems. arXiv preprint arXiv:1412.3779. URL http://arxiv.org/abs/1412.3779
biips_add_function
, biips_add_distribution
,
biips_model
, biips_smc_sensitivity
, biips_smc_samples
,
biips_pimh_samples
, biips_pmmh_samples
, smcarray
,
mcmcarray
, biips_diagnosis
, biips_summary
,
biips_density
, biips_hist
, biips_table
,
Biips website,
JAGS User Manual
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #' # Add custom functions and distributions to BUGS language
#' Add custom function `f`
f_dim <- function(x_dim, t_dim) {
# Check dimensions of the input and return dimension of the output of function f
stopifnot(prod(x_dim) == 1, prod(t_dim) == 1)
x_dim
}
f_eval <- function(x, t) {
# Evaluate function f
0.5 * x + 25 * x/(1 + x^2) + 8 * cos(1.2 * t)
}
biips_add_function('f', 2, f_dim, f_eval)
#' Add custom sampling distribution `dMN`
dMN_dim <- function(mu_dim, Sig_dim) {
# Check dimensions of the input and return dimension of the output of
# distribution dMN
stopifnot(prod(mu_dim) == mu_dim[1], length(Sig_dim) == 2, mu_dim[1] == Sig_dim)
mu_dim
}
dMN_sample <- function(mu, Sig) {
# Draw a sample of distribution dMN
mu + t(chol(Sig)) %*% rnorm(length(mu))
}
biips_add_distribution('dMN', 2, dMN_dim, dMN_sample)
#' # Compile model
modelfile <- system.file('extdata', 'hmm_f.bug', package = 'rbiips')
stopifnot(nchar(modelfile) > 0)
cat(readLines(modelfile), sep = '\n')
data <- list(tmax = 10, p = c(.5, .5), logtau_true = log(1), logtau = log(1))
model <- biips_model(modelfile, data, sample_data = TRUE)
#' # SMC algorithm
n_part <- 100
out_smc <- biips_smc_samples(model, c('x', 'c[2:10]'), n_part, type = 'fs',
rs_thres = 0.5, rs_type = 'stratified')
biips_diagnosis(out_smc)
biips_summary(out_smc)
par(mfrow = c(2, 2))
plot(biips_density(out_smc$x, bw = 'nrd0', adjust = 1, n = 100))
plot(biips_table(out_smc[['c[2:10]']]))
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.