LOCUS | R Documentation |
This is the main function in the package. It conducts the LOCUS approach for decomposing brain connectivity data into subnetworks.
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)
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 |
φ: tuning parameter for uniform sparse penalty. |
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 |
ρ: tuning parameter for selecting number of ranks in each subnetwork's decomposition. |
silent |
Whether to print intermediate steps. |
This is the main function for LOCUS decomposition of brain connectivity matrices, which is to minimize the following objective function:
∑_{i=1}^N\|y_i - ∑_{l=1}^q a_{il} s_l\|_2^2 + φ ∑_{l=1}^q\|s_l\|_*,
where y_i is the transpose of ith row in Y, s_l = L(X_l D_l X_l') represents the lth 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 φ, ρ 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.
An R list from Locus containing the following terms:
Conver |
Whether the algorithm is converaged. |
A |
Mixing matrix \{a_{il}\} of dimension N by q. |
S |
Subnetworks of dimension q by p, where each row represents a vectorized subnetwork based on |
theta |
A list of length q, where |
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.
## 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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.