[Eeglablist] Problem with ICA decomposition

Antonio Maffei antonio.maffei at phd.unipd.it
Thu Jul 21 18:51:20 PDT 2016


Hi Tarik,

I followed your suggestion and I found that the rank for my
average-referenced recording WITHOUT adding Cz is still 37, so the number
of rows constituting the matrix.

I also explored what happens when adding a zero-filled row in the CNT raw
file, namely my reference channel, and then computing the average ref.
Well, even if both the matrix have 38 rows, the rank of the first matrix is
37, so correctly rank-deficient due to the zeros, while the average ref
matrix is full ranked.

It seems different from what should happen, based on what reported in the
Makoto's pipeline about the issue related to rank and average reference.

Anyway I will try to look into this issue and report if any solution comes
out.

Cheers

Antonio Maffei, Ph.D. Student

Department of General Psychology (DPG)
University of Padova
Via Venezia 8 - 35131
Padova, Italy

email: antonio.maffei at phd.unipd.it
office: 049 8276256

2016-07-22 2:48 GMT+02:00 Tarik S Bel-Bahar <tarikbelbahar at gmail.com>:

> Hi Antonio, Thanks! Some extra notes below that may be of use. If you
> haven't had a chance to, see also SASICA and other plugins for your
> post-ICA pipeline. Cheers.
>
>
>
> ******************************************************************
>  I'm not 100% sure about the maths and ranks involved here, but there are
> definitely
> messages in eeglablist you can find from Jason Palmer and Makoto about the
> general issue of when/how to count rank.
> My apologies that I can't be of more direct help here. Below are some
> answers on the list related to your question after
> googling "eeglablist ICA average reference rank" and "eeglablist ICA
> rank".
> https://sccn.ucsd.edu/pipermail/eeglablist/2014/008309.html
> https://sccn.ucsd.edu/pipermail/eeglablist/2012/004665.html
> https://sccn.ucsd.edu/pipermail/eeglablist/2012/004670.html
> https://sccn.ucsd.edu/pipermail/eeglablist/2013/007062.html
> https://sccn.ucsd.edu/pipermail/eeglablist/2011/003781.html
> https://mailman.science.ru.nl/pipermail/fieldtrip/2014-April/007833.html
>
> about q1: If adding a channel after average referencing gives you +1 in
> rank, then perhaps you are right.
> My understanding (I may be wrong) is that when the data come in fresh they
> are "full rank" and have "all channels",
> and when the average referencing is done, they have "full rank -1" and
> "all channels".
> Here's a possible sanity check: what's the rank before and after you
> average reference, without adding Cz ?
>
> about q2: If you mean applying the ICA decomposition to your continuous
> files, or cleaned files, yes. I think the rule is that you should apply
> the ICA decomposition to files that are filtered the same way, the same
> referencing scheme, and the same channels as the files that went into the
> ICA.
> Basically the "file to apply ICA to"  should be the continuous or epoched
> files from   "the step just before" the ICA processing.
>
> *I still recommend a "test it for yourself" approach with n-1 for ica,
> after average referencing, and without the adding of Cz. Just try it once
> to eliminate the possibility.
> *Check that channels are correct and correctly loaded, often a hidden
> problem, but a basic step I'm sure you've checked already :)
> *Check if problem is with one or more recording sessions.
>
>
>
>
> On Thu, Jul 21, 2016 at 7:20 PM, Antonio Maffei <
> antonio.maffei at phd.unipd.it> wrote:
>
>> ​Hi Tarik​,
>>
>> thank you for your quick response.
>>
>> I have two more questions about this issue:
>>
>> 1) When I check data rank of my raw CNT file I have a rank of 37, that is
>> the effective number of rows of my matrix. Then, when I check the rank of
>> my data after average re-referencing and adding Cz back I have a rank of
>> 38, that is the effective number of rows of my new matrix. Thus, if I
>> understand correctly, for both my datasets the matrix is full-ranked.
>>
>> Should I find instead a data rank of N-1, rather than a data rank of N,
>> due to the rank deficiency determined by the average reference?
>>
>> 2) After decomposing data with dimension reduction using 'pca' option
>> enabled, can I apply the weights obtained to my 38 channels average
>> referenced data? Because I apply ICA on filtered and aggressively cleaned
>> data, as suggested in Makoto's pipeline, in order to apply the components
>> found to remove artifacts (blink, vertical and horizontal saccades and
>> hopefully muscular tension) on my uncleaned data.
>>
>> Antonio
>>
>> Antonio Maffei, Ph.D. Student
>>
>> Department of General Psychology (DPG)
>> University of Padova
>> Via Venezia 8 - 35131
>> Padova, Italy
>>
>> email: antonio.maffei at phd.unipd.it
>> office: 049 8276256
>>
>> 2016-07-21 21:48 GMT+02:00 Tarik S Bel-Bahar <tarikbelbahar at gmail.com>:
>>
>>> Hello Antonio, You should have enough data to make ICA happy, many
>>> groups use much less time and few channels but get valid-enough
>>> artifact-ICs. Your issue might be with rereferencing and adding CZ, and
>>> perhaps not fixing the rank. If you haven't had a chance to, please review
>>> Makoto's pipeline mentioned in the eeglablist, and the online eeglab
>>> tutorial. Googling eeglablist may also help. Some other notes are listed
>>> below.
>>>
>>> ***************
>>>
>>> remember to remove 1 channel to reduce rank for ICA, to reflect reduced
>>> rank due to the average rereferencing. Please google eeglablist for past
>>> mentions of this topic.
>>>
>>> Yes initial steps should take a long time, in general. It does not seem
>>> like it's an issue with your computer or installation.
>>>
>>> consider downsampling the signal, or taking just half of the total
>>> signal time. This should confirm the speedups you expect.
>>>
>>> consider going to 1-50 hz initially, this should "catch" any stereotyped
>>> components ICA can "see" in the data.
>>>
>>> consider demeaning and/or detrending the data
>>>
>>> consider detect+remove bad channels and not interpolating them before
>>> average rereferencing
>>> [try to make sure you end up with at least 25 channels and that they are
>>> well distributed across the scalp.]
>>>
>>> consider the Cz in via interpolation before average rereferencing [or
>>> just leave out for now and interpolate it in after ICA-cleaning). In or
>>> out,  it should not make much of difference in the hunt for ICA-derived
>>> stereotyped artifacts.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Wed, Jul 20, 2016 at 4:42 AM, Antonio Maffei <
>>> antonio.maffei at phd.unipd.it> wrote:
>>>
>>>> Dear all,
>>>>
>>>> I am stepping in some problems when running ICA decomposition for
>>>> artifact detection.
>>>>
>>>> My dataset consists in a continous 38 channels 70 minutes long
>>>> recording, sampled at 500 Hz referenced to Cz.
>>>>
>>>> My preprocessing steps are the following:
>>>> - Re-reference to the average reference and adding Cz to the recording
>>>> -Filter with a band-pass filter set at 1 - 100 Hz
>>>> - Visual inspection of the recording and removal of big noisy
>>>> artifacts, mainly movement artifacts, as suggested in the EEGLAB tutorials
>>>>
>>>> After these steps my dataset consists of 1864585 data points on which I
>>>> perform *runica* with the default options ('extended', '1').
>>>>
>>>> I noticed that the process is very slow, and the algorithm needs to
>>>> lowering the learning rate many times at the beginning but even so it seems
>>>> that it fails to converge, since the wchange values does not decrease
>>>> progressively (as they should) and it fails to reach the stop criterium
>>>> (wchange <1e-07).
>>>>
>>>> As a consequence I get a bad decomposition with uninterpretable
>>>> components that prevent their use for artifact correction.
>>>>
>>>> I am wondering if this problem is related to the amount of data points
>>>> fed to the ICA, since when I preprocessed shorter recordings I have not
>>>> encountered such difficulties, or I am making some mistakes during my
>>>> pipeline.
>>>>
>>>> A great thank to anyone who can help me.
>>>>
>>>> Antonio
>>>>
>>>> _______________________________________________
>>>> 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
>>>>
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://sccn.ucsd.edu/pipermail/eeglablist/attachments/20160722/254da7ac/attachment.html>


More information about the eeglablist mailing list