Learn R Programming

MNS (version 1.0)

MNS: Mixed Neighbourhood Selection

Description

Estimate multiple related graphical models using the mixed neighbourhood selection (MNS) algorithm.

Usage

MNS(dat, lambda_pop, lambda_random, parallel = FALSE, cores = NULL, max_iter = 100, tol = 1e-05)

Arguments

dat
List where each entry corresponds to the time series observations for each subject
lambda_pop
Regularization parameter applied to fixed effects components. See details below for more information
lambda_random
Regularization parameter applied to the standard deviations of random effect effects. See details below for more information
parallel
Indicate whether model fit should be done in parallel. Default is FALSE
cores
If fit in parallel, indicate how many cores should be used
max_iter
Maximum number of iterations in EM algorithm. See details below for more information
tol
Convergence tolerance in EM algorithm

Value

PresPop
Population connectivity matrix - encodes the sparse support structure of population precision
PresRE
Network of highly variable edges - encodes the sparse support structure of highly variable edges
PresBLUP
Array containing predicted subject specific deviations from population connectivity.
it
Iterations to fit MNS model (one per node)

Details

The MNS algorithm is an extension of neighbourhood selection to the scenario where the objective is to learn multiple related Gaussian graphical models. For further details see Monti et al. (2015).

References

Monti, R., Anagnostopolus, C., Montana, G. "Inferring brain connectivity networks from functional MRI data via mixed neighbourhood selection", arXiv, 2015

See Also

cv.MNS, plot.MNS

Examples

Run this code
set.seed(1)
N=4
Net = gen.Network(method = "cohort", p = 10, 
                       Nsub = N, sparsity = .2, 
                       REsize = 20, REprob = .5,
                       REnoise = 1, Nobs = 10)
## Not run: 
# mns = MNS(dat = Net$Data, lambda_pop = .1, lambda_random = .1, parallel = TRUE)
# # plot results:
# plot(mns) # plot population network
# plot(mns, view="var") # plot variance network
# plot(mns, view="sub") # plot subject networks (note red edges here are variable edges!)
# 
# ## End(Not run)

Run the code above in your browser using DataLab