Thanks to visit codestin.com
Credit goes to github.com

Skip to content
/ sanba Public

❗ This is a read-only mirror of the CRAN R package repository. sanba — Fitting Shared Atoms Nested Models via MCMC or Variational Bayes. Homepage: https://github.com/fradenti/sanba Report bugs for this package: https://github.com/fradenti/sanba/issues

License

Notifications You must be signed in to change notification settings

cran/sanba

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sanba v0.0.3

R-CMD-check Last Commit CRAN Downloads (monthly) Downloads (total)

The goal of sanba is to estimate Bayesian nested mixture models via MCMC and VI methods. Specifically, the package implements the common atoms model (Denti et al., 2023) and hybrid finite-infinite models (D’Angelo and Denti, 2024). All models use Gaussian mixtures with a normal-inverse-gamma prior distribution on the parameters. Additional functions are provided to help analyzing the results of the fitting procedure.

Installation

You can install the development version of sanba from GitHub with:

# install.packages("devtools")
devtools::install_github("Fradenti/sanba")

Examples

Fitting via MCMC

library(sanba)
set.seed(123)
y <- c(rnorm(160), rnorm(40, 5))
g <- rep(1:2, rep(100, 2))
plot(density(y[g==1]), xlim = c(-5,10), main = "Group-specific density")
lines(density(y[g==2]), col = 2)

out_mcmc <- fit_CAM(y = y, group = g, est_method = "MCMC", mcmc_param = list(nrep = 5000, burn=3000))
#> Warning in sample_CAM(y, group, prior_param = prior_param, mcmc_param =
#> mcmc_param): Increase maxK: all the provided distributional mixture components
#> were used. Check '$warnings' to see when it happened.
out_mcmc
#> 
#> MCMC results for CAM 
#> -----------------------------------------------
#> Model estimated on 200 total observations and 2 groups 
#> Groups sample sizes: 100, 100 
#> 
#> Size of the MCMC sample (after burn-in): 2000 
#> Total MCMC iterations performed: 5000 
#> Elapsed time: 0.997 secs
plot(out_mcmc)

#> Output truncated at 2 for mu.

Fitting via VI

library(sanba)
set.seed(123)
y <- c(rnorm(160), rnorm(40, 5))
g <- rep(1:2, rep(100, 2))
plot(density(y[g==1]), xlim = c(-5,10), main = "Group-specific density")
lines(density(y[g==2]), col = 2)

out_vi <- fit_fiSAN(y, group = g, est_method = "VI", vi_param = list(n_runs = 100))
out_vi
#> 
#> Variational inference results for fiSAN 
#> ----------------------------------------------
#> Model estimated on 200 total observations and 2 groups 
#> Groups sample sizes: 100, 100 
#> 
#> Threshold: 1e-06 
#> ELBO value: -171.476 
#> Best run out of 100 
#> Convergence reached in 291 iterations
#> Elapsed time: 0.2 secs
plot(out_vi)

References

D’Angelo, L., and Denti, F. (2024). A Finite-Infinite Shared Atoms Nested Model for the Bayesian Analysis of Large Grouped Data Sets. Bayesian Analysis

Denti, F., Camerlenghi, F., Guindani, M., Mira, A., 2023. A Common Atoms Model for the Bayesian Nonparametric Analysis of Nested Data. Journal of the American Statistical Association. 118(541), 405–416.

About

❗ This is a read-only mirror of the CRAN R package repository. sanba — Fitting Shared Atoms Nested Models via MCMC or Variational Bayes. Homepage: https://github.com/fradenti/sanba Report bugs for this package: https://github.com/fradenti/sanba/issues

Resources

License

Stars

Watchers

Forks

Packages

No packages published