[Eeglablist] ICs with identical topographies
smakeig at gmail.com
Fri Sep 9 10:19:37 PDT 2011
Max - You have indeed found the solution. You have 69 channels but the rank
of the data (number of linearly separable dimensions) is 68. This problem
arises when you reference to a linear combination (here, the average) of
more than one channel.
For example, say you collect 2 channels (A, B) referenced to lead X. Then
your EEG.data are the matrix
[A-X; B-X]. Now you re-reference to average reference using
avref=(A-X)/2+(B-X)/2. Your data matrix [(A-X)-averef; (B-X)-averef] then
becomes (after algebraic simplification) [A/2-B/2; B/2-A/2]. But the second
row (channel) of the re-referenced data is just the negative of the first,
so the rank is now 1, not 2.
That said, there is no reason that EEGLAB functions here should return 69
ICs in your case, instead of 68. I believe Arno is looking into that.
On Thu, Sep 8, 2011 at 6:02 AM, Maximilien Chaumon <
maximilien.chaumon at gmail.com> wrote:
> I think I found at least part of the solution to my problem:
> I keep the reference channel (in my case an average of all electrodes) in
> the dataset. This seems to reduce the rank of the data (the svd vector drops
> close to zero on the last value). I think I get an intuition of why it does
> so, but how am I supposed to do?
> Overall, I've checked, the subjects on which I removed one or more bad
> channels (after rereferencing) are fine. Their ICA looks nice, and the svd
> values do not drop close to zero on the last value.
> The problem is for those for whom I did not remove any bad channel. Their
> ICA shows the symptoms shown on my last email, below.
> So my questions end up being:
> Do I have to reference my data to one electrode and not include it in the
> ICA? and if so, why would anyone use an average reference before ICA? what
> is recommended? I can't find anything about referencing the data in the
> 2011/9/7 Maximilien Chaumon <maximilien.chaumon at gmail.com>
>> Hi eeglabbers,
>> I am still having issues with ICA returning extremely similar (but not
>> identical) topographies. The gui (although I run a version updated a few
>> days ago) does not popup any suggestion to reduce the rank. I only get this
>> warning (Warning: fixing rank computation inconsistency (68 vs 69) most
>> likely because running under Linux 64-bit MatlabAttempting to convert data
>> matrix to double precision for more accurate ICA results.) I still get 69
>> components in the end.
>> Here's some more info:
>> the rank of the data is 68. The svd drops abruptly close to zero at the
>> last value. I have 69 electrodes (64 heancap + 3EOG+2mastoids). I guess
>> there's a gel bridge somewhere. Although correlations between all electrodes
>> don't reach .95.
>> When I let the ICA run with default options, I still get these two
>> components<http://oszilla.hgs.hu-berlin.de/public/2P3like_components.png>(always 'P3 like' components, this was reproduced in other subjects). Their
>> frequency profiles are too good to be true, with low noise and a peak at
>> 10Hz, another one around 20Hz, see the figure. I would leave them alone if
>> they were not spoiling all my data: As I remove the components, when I click
>> this 'singles' button, which shows me the trial by trial time course. I get
>> what is shown on the right of the figure<http://oszilla.hgs.hu-berlin.de/public/2P3like_components.png>.
>> High frequency bursts appearing every now and then, usually at times where
>> there is high variability across channels.
>> Removing both components resolves the issue, but I loose a rather
>> important part of the data.
>> Here is the spectopo at 60Hz<http://oszilla.hgs.hu-berlin.de/public/2P3spectopo.png>.
>> There is a strong artefact here. The two components show a high power at all
>> How could frequencies that do not exist in the input be created by the
>> ICA? I filter my data, before ICA below 45Hz.
>> I tried running fastica, asking for 68 components, no such artifact
>> appears but the decomposition looks much less nice, at least with the
>> parameters I've used.
>> So in the end, my question is:
>> How can I run an ICA without trouble if the rank of the data is not equal
>> to the number of electrodes? How can I identify potentially gel bridged
>> Many thanks,
>> 2011/8/27 Arnaud Delorme <arno at ucsd.edu>
>>> Regarding the matrix rank, we have recently realized that the rank
>>> function (and other rank function we had programmed) are not fully reliable
>>> which is probably with Max observes the component he observes. The runica
>>> function should automatically decrease the rank of the input data matrix.
>>> However, sometimes it does not use the correct rank. We have modified the
>>> runica GUI so that if the matrix is not full rank, it now pops up a new
>>> window suggesting to the user a rank reduced value. This value may be
>>> adjusted by the user based on prior knowledge. For instance, if you have
>>> removed 5 components from the data, you would reduce the rank by 5 (and
>>> overwrite the rank that is automatically detected if it is not correct).
>>> On Aug 23, 2011, at 10:11 PM, John J.B. Allen wrote:
>>> I have observed that when the data are not full rank. You can test the
>>> rank of your data by reshaping your epoched data to a 2D matrix, and running
>>> the rank command, like this:
>>> When I did this, your rank is 63, but you have 69 channels, indicating
>>> that some channels are linearly dependent on others. I think this is the
>>> source of your problem, and if you remove those channels before running ICA,
>>> you should no longer see this issue.
>>> On Tue, Aug 23, 2011 at 07:24, Maximilien Chaumon <
>>> maximilien.chaumon at gmail.com> wrote:
>>>> Hi eeglabbers,
>>>> I sometimes get ICs with extremely similar topographies and time
>>>> courses, like on this slide<http://oszilla.hgs.hu-berlin.de/public/Similar_ICs.PNG>
>>>> I know that ICA returns independent components.
>>>> Does that not mean that they should not look the same?
>>>> I know the components are independent in a statistical sense, which is
>>>> not the same as uncorrelated, but still. I'm a bit surprised. What do these
>>>> two components mean if they cancel one another? well, do they?
>>>> Sorry if my question is naive, but what is happening?
>>>> The data is here<http://oszilla.hgs.hu-berlin.de/public/Similar_ICs.mat>
>>>> Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
>>>> To unsubscribe, send an empty email to
>>>> eeglablist-unsubscribe at sccn.ucsd.edu
>>>> For digest mode, send an email with the subject "set digest mime" to
>>>> eeglablist-request at sccn.ucsd.edu
>>> Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
>>> To unsubscribe, send an empty email to
>>> eeglablist-unsubscribe at sccn.ucsd.edu
>>> For digest mode, send an email with the subject "set digest mime" to
>>> eeglablist-request at sccn.ucsd.edu
> Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
> To unsubscribe, send an empty email to
> eeglablist-unsubscribe at sccn.ucsd.edu
> For digest mode, send an email with the subject "set digest mime" to
> eeglablist-request at sccn.ucsd.edu
Scott Makeig, Research Scientist and Director, Swartz Center for
Computational Neuroscience, Institute for Neural Computation & Adj. Prof. of
Neurosciences, University of California San Diego, La Jolla CA 92093-0559,
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the eeglablist