Aapo Hyvärinen

Menu

Code for Testing Independent Components (Old version, Sep 2011)

This page is provided for version control only. See this page for the newest version

This page contains code for testing which independent components are statistically significant. The code assumes you have computed ICA for several subjects (in a neuroimaging context) or several segments (sessions) of the data set. It then compares and clusters the independent components for the different subjects or sessions and determines which are found more consistently than expected by chance.

Download Matlab code here.

A simple example of using the code:

clustering=isctest(Atensor,0.05,0.05);

where Atensor is a three-dimensional tensor such that A(:,:,k) contains the mixing matrix estimated from the k-th subject or session.

Note that you have to do ICA first, this code does not include ICA estimation. Also note that you must used ordinary ICA here, e.g. using the FastICA package. Do not use the ICASSO package which is not compatible with ISCTEST.

The variable clustering will have each cluster of consistent components as one of its rows, the columns corresponding to the subjects, and the entries giving the indices of the components belonging to the cluster (zero meaning no component belongs to this cluster). For example, suppose you have four subjects/sessions and clustering has the following row:

[ 5, 3, 4, 0 ]
This means that the method found a cluster of consistent components which contains the 5th component of subject #1, the 3rd component of subject #2, the 4th components of subject #3, but no component from subject #4 fitted this particular cluster. Each row should be interpreted separately as one cluster of consistent components.

For the theory, see the paper Testing the ICA mixing matrix based on inter-subject or inter-session consistency, NeuroImage, 58:122-136, 2011.

Note that this algorithm considers two components to be similar if the corresponding columns of the mixing matrix are similar. Alternatively, one might want to compare the components based on the values of the independent components (e.g. spatial distributions in spatial fMRI). Such a method is under development and will be released soon on this page.