Learn R Programming

nethet (version 1.4.2)

bwprun_mixglasso: bwprun_mixglasso

Description

Mixglasso with backward pruning

Usage

bwprun_mixglasso(x, n.comp.min = 1, n.comp.max, lambda = sqrt(2 * nrow(x) *
  log(ncol(x)))/2, pen = "glasso.parcor", selection.crit = "mmdl",
  term = 10^{     -3 }, min.compsize = 5, init = "kmeans.hc",
  my.cl = NULL, modelname.hc = "VVV", nstart.kmeans = 1,
  iter.max.kmeans = 10, reinit.out = FALSE, reinit.in = FALSE,
  mer = TRUE, del = TRUE, ...)

Arguments

x
Input data matrix
n.comp.min
Minimum number of components. Take n.comp.min=1 !
n.comp.max
Maximum number of components
lambda
Regularization parameter. Default=sqrt(2*n*log(p))/2
pen
Determines form of penalty: glasso.parcor (default), glasso.invcov, glasso.invcor
selection.crit
Selection criterion. Default='mmdl'
term
Termination criterion of EM algorithm. Default=10^-3
min.compsize
Stop EM if any(compsize)
init
Initialization. Method used for initialization init={'cl.init','r.means','random','kmeans','kmeans.hc','hc'}. Default='kmeans.hc'
my.cl
Initial cluster assignments; need to be provided if init='cl.init' (otherwise this param is ignored). Default=NULL
modelname.hc
Model class used in hc. Default="VVV"
nstart.kmeans
Number of random starts in kmeans; default=1
iter.max.kmeans
Maximal number of iteration in kmeans; default=10
reinit.out
Re-initialization if compsize
reinit.in
Re-initialization if compsize
mer
Merge closest comps for initialization
del
Delete smallest comp for initialization
...
Other arguments. See mixglasso_init

Value

  • list consisting of
  • selcritSelcrit for all models with number of components between n.comp.min and n.comp.max
  • res.initInitialization for all components
  • comp.nameList of names of components. Indicates which states where merged/deleted during backward pruning
  • re.init.inLogical vector indicating whether re-initialization was performed or not
  • fit.mixgl.selcritResults for model with optimal number of components. List see mixglasso_init

Details

This function runs mixglasso with various number of mixture components: It starts with a too large number of components and iterates towards solutions with smaller number of components by initializing using previous solutions.

Examples

Run this code
##generate data
set.seed(1)
n <- 1000
n.comp <- 3
p <- 10

# Create different mean vectors
Mu <- matrix(0,p,n.comp)

nonzero.mean <- split(sample(1:p),rep(1:n.comp,length=p))
for(k in 1:n.comp){
  Mu[nonzero.mean[[k]],k] <- -2/sqrt(ceiling(p/n.comp))
}

sim <- sim_mix_networks(n, p, n.comp, Mu=Mu)

##run mixglasso

fit <-  bwprun_mixglasso(sim$data,n.comp=1,n.comp.max=5,selection.crit='bic')
plot(fit$selcrit,ylab='bic',xlab='Num.Comps',type='b')

Run the code above in your browser using DataLab