Fitting Shared Atoms Nested Models via Markov Chains Monte Carlo

Estimate Bayesian nested mixture models via Markov Chain Monte Carlo methods. Specifically, the package implements the common atoms model (Denti et al., 2023), and hybrid finite-infinite models. 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. References: Denti, Camerlenghi, Guindani, Mira (2023) , D’Angelo, Denti (2024) .


SANple v0.2.0

CRAN LastCommit Downloads(monthly) Downloads(total)

The goal of SANple is to estimate Bayesian nested mixture models via MCMC methods. Specifically, the package implements the common atoms model (Denti et al., 2023), 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 SANple from GitHub with:

# install.packages("devtools")
devtools::install_github("laura-dangelo/SANple")

Example

This is a basic example which shows you how to solve a common problem:

library(SANple)
#> Loading required package: scales
#> Loading required package: RColorBrewer

## basic example code
set.seed(123)
y <- c(rnorm(50,-5,1), rnorm(170,0,1),rnorm(70,5,1))
g <- c(rep(1,150), rep(2, 140))
plot(density(y[g==1]), xlim = c(-10,10), main = "", xlab = "")
lines(density(y[g==2]), col = "cyan4")
out <- sample_fiSAN(nrep = 3000, burn = 1000, y = y, group = g, beta = 0.01)
out 
#> 
#> MCMC result of fiSAN model 
#> -----------------------------------------------
#> Model estimated on 290 total observations and 2 groups 
#> Total MCMC iterations: 3000 
#> maxL: 50 - maxK: 50 
#> Elapsed time: 3.374 secs 
#> 
clusters <- estimate_clusters(out)
clusters
#> Summary of the estimated observational and distributional clusters 
#> 
#> ----------------------------------
#> Estimated number of observational clusters: 4 
#> Estimated number of distributional clusters: 2 
#> ----------------------------------
#> 
#> Distributional cluster 1 
#>     post_mean  post_var
#> 1 -4.96559645 0.8572352
#> 2 -0.05374608 0.9306906
#> 
#> Distributional cluster 2 
#>     post_mean  post_var
#> 3 -0.00160923 0.7737203
#> 4  5.03452815 0.8314760
#> 
plot(out, estimated_clusters = clusters)

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.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("SANple")

0.2.0 by Francesco Denti, a year ago


https://github.com/laura-dangelo/SANple


Report a bug at https://github.com/laura-dangelo/SANple/issues


Browse source code at https://github.com/cran/SANple


Authors: Francesco Denti [aut, cre] (ORCID: , Laura D'Angelo [aut, cph] (ORCID:


Documentation:   PDF Manual  


MIT + file LICENSE license


Imports Rcpp, salso

Depends on scales, RColorBrewer

Linking to Rcpp, RcppArmadillo, RcppProgress


See at CRAN