fit_mvn: Multivariate normal mixture model clustering

View source: R/fit_mvn.R

fit_mvnR Documentation

Multivariate normal mixture model clustering

Description

Implement Gibbs sampling for MVN model with no spatial random effects

Usage

fit_mvn(Y, K, nsim = 2000, burn = 1000, z_init = NULL)

Arguments

Y

An n x g matrix of gene expression values. n is the number of cell spots and g is the number of features.

K

The number of mixture components to fit.

nsim

Number of total MCMC iterations to run.

burn

Number of MCMC iterations to discard as burn in. The number of saved samples is nsim - burn.

z_init

Optional initialized allocation vector. Randomly initialized if NULL.

Value

a list of posterior samples

Examples


n <- 100 # number of observations
g <- 3 # number of features
K <- 3 # number of clusters (mixture components)
pi <- rep(1/K,K) # cluster membership probability
z <- sample(1:K, size = n, replace = TRUE, prob = pi) # cluster indicators
z <- remap_canonical2(z)

# Cluster Specific Parameters
# cluster specific means
Mu <- list(
  Mu1 = rnorm(g,-5,1),
  Mu2 = rnorm(g,0,1),
  Mu3 = rnorm(g,5,1)
)
# cluster specific variance-covariance
S <- matrix(1,nrow = g,ncol = g) # covariance matrix
diag(S) <- 1.5
Sig <- list(
  Sig1 = S,
  Sig2 = S, 
  Sig3 = S
)

Y <- matrix(0, nrow = n, ncol = g)
for(i in 1:n)
{
  Y[i,] <- mvtnorm::rmvnorm(1,mean = Mu[[z[i]]],sigma = Sig[[z[i]]])
}

# fit model
fit1 <- fit_mvn(Y,3,10,0)

spruce documentation built on March 18, 2022, 7:01 p.m.

Related to fit_mvn in spruce...