[Eeglablist] Problem with ICA decomposition

Tarik S Bel-Bahar tarikbelbahar at gmail.com
Thu Jul 21 17:48:33 PDT 2016


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/20160721/c56cea28/attachment.html>


More information about the eeglablist mailing list