--- title: "Tutorial" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Tutorial} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` To use `waspr` the user first needs to load the package as follows: ```{r message=FALSE} library(waspr) ``` The user must provide a 3-dimensional array with posterior samples for all parameters for each subset posterior (rows = subset posteriors, columns = parameters, slices = samples). The amount of parameters and samples must be equal for each subset posterior, these posterior samples may be obtained from any type of MCMC algorithm. `waspr` provides an example array with posterior samples for 8 parameters for 8 subset posteriors, `pois_logistic`, that will be used to illustrate the functionality of the package. The main function `wasp()` runs the swapping algorithm, combines its output and computes the Wasserstein barycenter. It has four arguments, `mcmc`, that specifies the 3-dimensional array with samples for each subset posterior, and optional arguments `par.names`, that can be used to specify parameter names, `iter` to specify the maximum number of iterations of the swapping algorithm, `acc` to specify the accuracy of the swapping algorithm and `out` to indicate whether the results per iteration of the swap algorithm should be printed. ```{r} out <- wasp(pois_logistic, iter = 10, acc = 0.001, par.names = c("beta_s", "alpha_l", "beta_l", "baseline_sigma", "baseline_mu", "correlation", "sigma_s", "sigma_l")) ``` `wasp()` prints the iteration number and cost function value of the swapping algorithm. The `out` object is of class `wasp` and contains several elements. To obtain the Wasserstein barycenter of the subset posteriors a user can specify `out$barycenter`. This returns a matrix of posterior samples (rows) for all parameters (columns) of the full data posterior. A summary of the approximation of the full data posterior is available through `summary(out)`. ```{r} summary(out) ```