[Eeglablist] Fwd: Applying ICA weight matrix on another dataset

Shou, Guofa gshou at ou.edu
Fri Feb 22 11:34:32 PST 2013

HI, Maarten, 
    For ICA calculation, we basically just need the mixing matrix or unmixing matrix. If we assume the brain/artifacts sources are stable between two datasets. Then you can directly use the unmixing matrix from one dataset to the other. And there is no need to calculate the sphereing matrix from new dataset.
You can code by yourself.
  I have checked the ICA in EEGLAB. If you design a number of ICs less than the rank, then the returned icasphere will be a identity matrix. While if you have same number of ICs as rank of dataset, then the returned matrix is the real sphereing matrix. Then if you want to generalize the unmixing matrix to new data by EEGlab code, you should be careful, and I think you need to assign the sphereing matrix with the one calculated by new dataset, Since the EEG_getica and pop_subcomp all use sphering matrix.
  Hope this can help.

Guofa Shou PhD
Postdoc research associate,
Computational Imaging Laboratory,
University of Oklahoma
3100 Monitor Ave. Suite 280
phone: 405-245-9382
From: eeglablist-bounces at sccn.ucsd.edu [eeglablist-bounces at sccn.ucsd.edu] on behalf of Maarten De Schuymer [maartendeschuymer at gmail.com]
Sent: Friday, February 22, 2013 10:38 AM
To: eeglablist at sccn.ucsd.edu
Subject: [Eeglablist] Fwd: Applying ICA weight matrix on another dataset

Dear list,

I am still trying to figure out which is the correct sphering matrix when applying ICA weights to another version of the same dataset.
Is there an expert who can weight in on this issue?

Thanks a lot,
Maarten De Schuymer

---------- Forwarded message ----------
From: Maarten De Schuymer <maartendeschuymer at gmail.com<mailto:maartendeschuymer at gmail.com>>
Date: 2013/2/14
Subject: Applying ICA weight matrix on another dataset
To: eeglablist at sccn.ucsd.edu<mailto:eeglablist at sccn.ucsd.edu>

Dear list,

I have a question concerning the role of the sphering matrix (which decorrelates the channels) in the rather common scenario where I compute an ICA on one version of a dataset, but then apply the ICA results to another version of the same data (e.g. epoched vs. continuous, filtered vs. unfiltered).

To remove artifacts in my study, I compute the ICA on high-pass filtered (e.g. 1 Hz) data, because this results in much better ICA decompositions. However, I would like to apply the results of this ICA to my original, unfiltered version of the same dataset, because would like to keep slow potentials (< 1 Hz) in the data. After running ICA on the filtered data, I save both EEG.icaweights and EEG.icasphere.

When I now apply the ICA weight matrix to the original data it is unclear to me which sphering matrix needs to be used.

Should I (A) also import the ICA sphering matrix from the filtered data or (B) recompute the sphering matrix (cmd: sphere(EEG.data)) for the original unfiltered data and consequently use that one. Both possibilities result in different outcomes since sphering matrices are different for both versions of the datasets. Which of these possibilities are recommended and more importantly, why exactly?

A related question concerns the exporting-importing of the weight matrix in the GUI of EEGLAB. When exporting weights, a single exported file contains the combined weight*sphering matrix. However, when importing, two different files need to be imported, i.e. both weight matrix and sphere matrix separately. This does not seem practical. Or is there a rationale behind this distinction between import and export?

Thanks for any input on this,

Maarten De Schuymer

More information about the eeglablist mailing list