[Eeglablist] ICA components correspond to channels after full rank ave reference
Grace Harvie
ghar8070 at uni.sydney.edu.au
Tue Apr 28 22:44:45 PDT 2026
Hi all,
I am getting strange results from ICA decomposition after full rank average referencing my data - the component scalp maps appear to correspond to the activity for each channel in the array.
I have tried calculating the full rank average reference in following ways:
1) using Makoto's fullRankAveRef() plugin
2) manually computing with an adjusted denominator ie EEG.data = bsxfun(@minus, EEG.data, sum(EEG.data, 1)/(EEG.nbchan + 1));
3) by appending a zero-filled channel to the data, calculating the average reference using the EEGLAB GUI, then selecting the data to exclude the added channel.
All methods result in the same outcome: a quick ICA decomposition with components that seemingly represent individual channel activities.
By contrast, when I perform the ICA decomposition on rank-deficient average-referenced data (making sure that the proposed rank for ICA decomp is n-1 my number of channels), I get components which are much closer to what I would expect given the quality of the recordings I am working with and which don't seem to correspond with individual channels.
A comparison of the component scalp maps can be viewed here: https://urldefense.com/v3/__https://github.com/graematterneuro/ACTIONStudyEEGData/blob/main/Full-rank-vs-rank-deficient-ave-ref-ICA.png__;!!Mih3wA!Cg8DEMi6htttMVradmtbcHxgxzvmMuWkxVVJm8N3D5_UUlDTOlFa5OPGj3uqsb9C-UX3fzI-r2hvGjjahF6T0uRXa5gB1Fh-$
Full rank average reference is on the left, rank-deficient average reference is on the right. The data set is the same, and pre-processed in exactly the same way, with the exception of the average reference.
Preprocessing pipeline:
1) Import data and channel locations.
2) Select cephalic channels.
3) High pass filter with a lower edge of 1Hz.
4) Check for bad channel: if bad channels present, reject those channels, otherwise skip.
6) Check for line noise: if line noise present, run new implementation of Cleanline, otherwise skip.
5) Perform full rank average referencing.
8) ICA decomposition using Robust Extended Infomax algorithm.
Preprocessing script can also be viewed here: https://urldefense.com/v3/__https://github.com/graematterneuro/ACTIONStudyEEGData/blob/main/ACTIONPreprocessingPipeline.m__;!!Mih3wA!Cg8DEMi6htttMVradmtbcHxgxzvmMuWkxVVJm8N3D5_UUlDTOlFa5OPGj3uqsb9C-UX3fzI-r2hvGjjahF6T0uRXaz_2XXPt$
Based on what I have read, calculating a full rank average reference when using ICA does seem to be best practice, so I would be grateful of any insight anyone can shed on this issue as it has me stumped! With any luck, this is a case of user error and I'm just missing something obvious!
Many thanks,
Grace Harvie
PhD Candidate, Faculty of Medicine and Health, University of Sydney
Research Assistant, Brain Dynamics Centre
[The Westmead Institute For Medical Research Logo] [The University of Sydney Logo] [Accredited Mental Health First Aider]
[cid:5f916214-6cb6-4b7c-85bf-c3bbf65c0b24]
176 Hawkesbury Road | PO Box 412 | Westmead NSW 2145 Australia
ghar8070 at uni.sydney.edu.au | T +61 2 8627 3305
westmeadinstitute.org.au<https://urldefense.com/v3/__https://www.westmeadinstitute.org.au/__;!!Mih3wA!Cg8DEMi6htttMVradmtbcHxgxzvmMuWkxVVJm8N3D5_UUlDTOlFa5OPGj3uqsb9C-UX3fzI-r2hvGjjahF6T0uRXaw5nM_9v$ > | Follow us on Facebook<https://urldefense.com/v3/__https://www.facebook.com/TheWestmeadInstitute/__;!!Mih3wA!Cg8DEMi6htttMVradmtbcHxgxzvmMuWkxVVJm8N3D5_UUlDTOlFa5OPGj3uqsb9C-UX3fzI-r2hvGjjahF6T0uRXaxs6XMGt$ > | Watch us on YouTube<https://urldefense.com/v3/__http://tinyurl.com/WIMRYoutube__;!!Mih3wA!Cg8DEMi6htttMVradmtbcHxgxzvmMuWkxVVJm8N3D5_UUlDTOlFa5OPGj3uqsb9C-UX3fzI-r2hvGjjahF6T0uRXa2mFN5Fg$ >
This email is private and confidential to the intended recipient. If you are not the intended recipient, please do not copy it, circulate it or take any action in reliance on it. Kindly notify me that it has been misdirected and then delete it. Thank you.
More information about the eeglablist
mailing list