sample_fiSAN {SANple} | R Documentation |
Sample fiSAN
Description
sample_fiSAN
is used to perform posterior inference under the finite-infinite shared atoms nested (fiSAN) model with Gaussian likelihood.
The model uses a Dirichlet process mixture prior at the distributional level,
and Dirichlet mixture with an unknown number of components (following the specification of Frühwirth-Schnatter et al., 2021) at the observational level.
The algorithm for the nonparametric component is based on the slice sampler for DPM of Kalli, Griffin and Walker (2011).
Usage
sample_fiSAN(nrep, burn, y, group,
maxK = 50, maxL = 50,
m0 = 0, tau0 = 0.1, lambda0 = 3, gamma0 = 2,
hyp_alpha1 = 1, hyp_alpha2 = 1,
hyp_beta1 = 6, hyp_beta2 = 3,
eps_beta = NULL,
alpha = NULL, beta = NULL,
warmstart = TRUE, nclus_start = NULL,
mu_start = NULL, sigma2_start = NULL,
M_start = NULL, S_start = NULL,
alpha_start = NULL, beta_start = NULL,
progress = TRUE, seed = NULL)
Arguments
nrep |
Number of MCMC iterations. |
burn |
Number of discarded iterations. |
y |
Vector of observations. |
group |
Vector of the same length of y indicating the group membership (numeric). |
maxK |
Maximum number of distributional clusters |
maxL |
Maximum number of observational clusters |
m0 , tau0 , lambda0 , gamma0 |
Hyperparameters on |
hyp_alpha1 , hyp_alpha2 |
If a random |
hyp_beta1 , hyp_beta2 , eps_beta |
If a random |
alpha |
Distributional DP parameter if fixed (optional). The distribution is |
beta |
Observational Dirichlet parameter if fixed (optional). The distribution is Dirichlet( |
warmstart , nclus_start |
Initialization of the observational clustering.
|
mu_start , sigma2_start , M_start , S_start , alpha_start , beta_start |
Starting points of the MCMC chains (optional). Default is |
progress |
show a progress bar? (logical, default TRUE). |
seed |
set a fixed seed. |
Details
Data structure
The finite-infinite common atoms mixture model is used to perform inference in nested settings, where the data are organized into J
groups.
The data should be continuous observations (Y_1,\dots,Y_J)
, where each Y_j = (y_{1,j},\dots,y_{n_j,j})
contains the n_j
observations from group j
, for j=1,\dots,J
.
The function takes as input the data as a numeric vector y
in this concatenated form. Hence y
should be a vector of length
n_1+\dots+n_J
. The group
parameter is a numeric vector of the same size as y
indicating the group membership for each
individual observation.
Notice that with this specification the observations in the same group need not be contiguous as long as the correspondence between the variables
y
and group
is maintained.
Model
The data are modeled using a univariate Gaussian likelihood, where both the mean and the variance are observational-cluster-specific, i.e.,
y_{i,j}\mid M_{i,j} = l \sim N(\mu_l,\sigma^2_l)
where M_{i,j} \in \{1,\dots,L \}
is the observational cluster indicator of observation i
in group j
.
The prior on the model parameters is a Normal-Inverse-Gamma distribution (\mu_l,\sigma^2_l)\sim NIG (m_0,\tau_0,\lambda_0,\gamma_0)
,
i.e., \mu_l\mid\sigma^2_l \sim N(m_0, \sigma^2_l / \tau_0)
, 1/\sigma^2_l \sim Gamma(\lambda_0, \gamma_0)
(shape, rate).
Clustering
The model performs a clustering of both observations and groups.
The clustering of groups (distributional clustering) is provided by the allocation variables S_j \in \{1,2,\dots\}
, with
Pr(S_j = k \mid \dots ) = \pi_k \qquad \text{for } \: k = 1,2,\dots
The distribution of the probabilities is \{\pi_k\}_{k=1}^{\infty} \sim GEM(\alpha)
,
where GEM is the Griffiths-Engen-McCloskey distribution of parameter \alpha
,
which characterizes the stick-breaking construction of the DP (Sethuraman, 1994).
The clustering of observations (observational clustering) is provided by the allocation variables M_{i,j} \in \{1,\dots,L\}
, with
Pr(M_{i,j} = l \mid S_j = k, \dots ) = \omega_{l,k} \qquad \text{for } \: k = 1,2,\dots \, ; \: l = 1,\dots,L.
The distribution of the probabilities is (\omega_{1,k},\dots,\omega_{L,k})\sim Dirichlet_L(\beta/L,\dots,\beta/L)
for all k = 1,2,\dots
.
Moreover, the dimension L
is random (see Frühwirth-Schnatter et al., 2021).
Value
sample_fiSAN
returns four objects:
-
model
: name of the fitted model. -
params
: list containing the data and the parameters used in the simulation. Details below. -
sim
: list containing the simulated values (MCMC chains). Details below. -
time
: total computation time.
Data and parameters:
params
is a list with the following components:
nrep
Number of MCMC iterations.
y, group
Data and group vectors.
maxK, maxL
Maximum number of distributional and observational clusters.
m0, tau0, lambda0, gamma0
Model hyperparameters.
- (
hyp_alpha1,hyp_alpha2
) oralpha
Either the hyperparameters on
\alpha
(if\alpha
random), or the value for\alpha
(if fixed).- (
hyp_beta1, hyp_beta2, eps_beta
) orbeta
Either the hyperparameters on
\beta
and MH step size (if\beta
random), or the value for\beta
(if fixed).
Simulated values:
sim
is a list with the following components:
mu
Matrix of size (
nrep
,maxL
). Each row is a posterior sample of the mean parameter for each observational cluster(\mu_1,\dots\mu_L)
.sigma2
Matrix of size (
nrep
,maxL
). Each row is a posterior sample of the variance parameter for each observational cluster(\sigma^2_1,\dots\sigma^2_L)
.obs_cluster
Matrix of size (
nrep
, n), with n =length(y)
. Each row is a posterior sample of the observational cluster allocation variables(M_{1,1},\dots,M_{n_J,J})
.distr_cluster
Matrix of size (
nrep
, J), with J =length(unique(group))
. Each row is a posterior sample of the distributional cluster allocation variables(S_1,\dots,S_J)
.pi
Matrix of size (
nrep
,maxK
). Each row is a posterior sample of the distributional cluster probabilities(\pi_1,\dots,\pi_{maxK})
.omega
3-d array of size (
maxL
,maxK
,nrep
). Each slice is a posterior sample of the observational cluster probabilities. In each slice, each columnk
is a vector (of lengthmaxL
) observational cluster probabilities(\omega_{1,k},\dots,\omega_{L,k})
for distributional clusterk
.alpha
Vector of length
nrep
of posterior samples of the parameter\alpha
.beta
Vector of length
nrep
of posterior samples of the parameter\beta
.maxK
Vector of length
nrep
of the number of distributional DP components used by the slice sampler.L_plus
Vector of length
nrep
of posterior samples of the number of observational clusters.L
Vector of length
nrep
of posterior samples of the observational Dirichlet dimension.
References
Frühwirth-Schnatter, S., Malsiner-Walli, G. and Grün, B. (2021). Generalized mixtures of finite mixtures and telescoping sampling. Bayesian Analysis, 16(4), 1279–1307. <doi:10.1214/21-BA1294>
Kalli, M., Griffin, J.E., and Walker, S.G. (2011). Slice Sampling Mixture Models, Statistics and Computing, 21, 93–105. <doi:10.1007/s11222-009-9150-y>
Sethuraman, A.J. (1994). A Constructive Definition of Dirichlet Priors, Statistica Sinica, 4, 639–650.
Examples
set.seed(123)
y <- c(rnorm(40,0,0.3), rnorm(20,5,0.3))
g <- c(rep(1,30), rep(2, 30))
plot(density(y[g==1]), xlim = c(-5,10))
lines(density(y[g==2]), col = 2)
out <- sample_fiSAN(nrep = 500, burn = 200, y = y, group = g,
nclus_start = 2,
maxK = 20, maxL = 20,
beta = 1)
out