[Eeglablist] ICA components correspond to channels after full rank ave reference
Makoto Miyakoshi
mmiyakoshi at ucsd.edu
Wed Apr 29 14:55:44 PDT 2026
Hi Grace,
Your full rank one (left on the screen) seems correct to me. The results
shown on the right window must be invalid.
5) Perform full rank average referencing.
When you apply an average reference, you want to calculate the 'average'
across electrodes in an unbiased way, right? But if you reject several
electrodes from your left hemisphere while zero from your right hemisphere
then calculate your 'average', it is biased toward the right hemisphere
because there are more electrodes. It's that simple. This is why you want
to interpolate all rejected electrodes BEFORE average referencing AND ICA.
When you run ICA, make sure you submit data with all rejected electrodes
interpolated, even if it causes another issue, which I reported as ICA's
bug (Kim et al., 2023). Use the correct rank calculation I explained in
that paper and you are fine. I recommend this approach because if you
interpolate the rejected channels AFTER ICA, your ICA result is no longer
usable. ICA does not know how to explain the newly added channel AFTER ICA.
ICA is a blind source separation algorithm, but adding a random channel
with unknown weight post hoc is too blinding!
Makoto
On Wed, Apr 29, 2026 at 1:38 PM Grace Harvie via eeglablist <
eeglablist at sccn.ucsd.edu> wrote:
> 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.
> _______________________________________________
> To unsubscribe, send an empty email to
> eeglablist-unsubscribe at sccn.ucsd.edu or visit
> https://sccn.ucsd.edu/mailman/listinfo/eeglablist .
>
More information about the eeglablist
mailing list