LOCUS {LOCUS} | R Documentation |
LOCUS: Low-rank decomposition of brain connectivity matrices with uniform sparsity
Description
This is the main function in the package. It conducts the LOCUS approach for decomposing brain connectivity data into subnetworks.
Usage
LOCUS(Y, q, V, MaxIteration=100, penalty="SCAD", phi = 0.9, approximation=TRUE,
preprocess=TRUE, espli1=0.001, espli2=0.001, rho=0.95, silent=FALSE)
Arguments
Y |
Group-level connectivity data from N subjects, which is of dimension N x p, where p is number of edges. Each row of Y represents a subject's vectorized connectivity matrix by |
q |
Number of ICs/subnetworks to extract. |
V |
Number of nodes in the network. Note: p should be equal to V(V-1)/2. |
MaxIteration |
Maximum number of iteractions. |
penalty |
The penalization approach for uniform sparsity, which can be |
phi |
|
approximation |
Whether to use an approximated algorithm to speed up the algorithm. |
preprocess |
Whether to preprocess the data, which reduces the data dimension to |
espli1 |
Toleration for convergence on mixing coefficient matrix, i.e. A. |
espli2 |
Toleration for convergence on latent sources, i.e. S. |
rho |
|
silent |
Whether to print intermediate steps. |
Details
This is the main function for LOCUS decomposition of brain connectivity matrices, which is to minimize the following objective function:
\sum_{i=1}^N\|y_i - \sum_{l=1}^q a_{il} s_l\|_2^2 + \phi \sum_{l=1}^q\|s_l\|_*,
where y_i
is the transpose of i
th row in Y
, s_l = L(X_l D_l X_l')
represents the l
th vectorized latent source/subnetwork with low-rank decomposition, L
is Ltrans
function, \|\cdot\|_*
represents the penalty which can either be NULL, L1, or SCAD (Fan & Li, 2001).
If user want to do BIC parameter selection of \phi, \rho
before calling LOCUS main function, one can use LOCUS_BIC_selection
to find the best parameter set. Further details can be found in the LOCUS paper.
Value
An R list from Locus containing the following terms:
Conver |
Whether the algorithm is converaged. |
A |
Mixing matrix |
S |
Subnetworks of dimension q by p, where each row represents a vectorized subnetwork based on |
theta |
A list of length q, where |
References
Wang, Y. and Guo, Y. (2023). LOCUS: A novel signal decomposition method for brain network connectivity matrices using low-rank structure with uniform sparsity. Annals of Applied Statistics.
Fan, J., & Li, R. (2001). Variable selection via nonconcave penalized likelihood and its oracle properties. Journal of the American statistical Association, 96(456), 1348-1360.
Examples
## Simulated the data to use.
V = 50
S1 = S2 = S3 = matrix(0,ncol = V,nrow = V)
S1[5:20,5:20] = 4;S1[23:37,23:37] = 3;S1[40:48,40:48] = 3
S2[15:20,] = -3;S2[,15:20] = -3
S3[15:25,36:45] = 3; S3[36:45,15:25] = 3
Struth = rbind(Ltrans(S1,FALSE) , Ltrans(S2,FALSE), Ltrans(S3,FALSE))
set.seed(100)
Atruth = matrix(rnorm(100*3),nrow=100,ncol=3)
Residual = matrix(rnorm(100*dim(Struth)[2]),nrow=100)
Yraw = Atruth%*%Struth + Residual
##### Run Locus on the data #####
Locus_result = LOCUS(Yraw,3,V)
oldpar = par(mfrow=c(2,3))
for(i in 1:dim(Struth)[1]){image(Ltrinv(Struth[i,],V,FALSE))}
for(i in 1:dim(Locus_result$S)[1]){image(Ltrinv(Locus_result$S[i,],V,FALSE))}
par(oldpar)