[Eeglablist] Problems in run ICA and re-run ICA

Makoto Miyakoshi mmiyakoshi at ucsd.edu
Tue Jul 17 14:07:56 PDT 2018


Dear Melinna,

> I can understand the rank deficiency problem that caused by interpolating
or components removing. However, I cann't understand if it is the rank
deficiency that leads to the poor running speed.

If ICA tries to decompose 100 ICs out of rank==99 data, it could slow down
the process, I think. I haven't tested it yet.

> Under the rank deficiency condition, My original command script is
"EEG=pop_runica(EEG,'extended',1,'interupt','on')"; It runs very slow, in
ages.

Infomax could slow down for several things. If you have huge outliers in
your data, it can also slow down the process. Check your continuous data
using trimOutlier() which is one of the plugins. Using 'extended', 1
slightly slows the process too.

> If I change it to,
ranknumbs=n;% the actual deficient rank
EEG=pop_runica(EEG,'extended',1,'interupt','on','pca', ranknumbs);
It works again, the processing speed become normal and acceptable.

That sounds good. However, check also your data stationarity (i.e., no
terrible outliere etc.)

> Or if I change it to,
ranknumbs=n; % the actual deficient rank
EEG=pop_runica(EEG,'extended',1,'interupt','on','ncomps', ranknumbs);
It works sometimes.

Sounds like rank issue is certainly the part of the problem.

> By the way, this problem happens in the version eeglab 13.5.4. In the
previous version I used (eeglab 10.2.5), it seldom occured this running
problem. I noticed that there is minimal difference in the two versions of
runica function, and I am not sure whether it is the reason that make the
difference.

I don't think the version difference makes much of performance difference
(as long as I know... I did not hear anything about the changes in infomax
algorithm in SCCN, but I could be wrong.)

> So, to summarize the question here again: would the rank deficiency lead
to severe running prolbem in ICA? if it is neccessary to put addition
parameter in the input box to call the function properlly, such as('pca',or
'ncomps')?

To summarize my advice,

   1. Check if the data are full-ranked
   2. Check with trimOutlier() whether your data have outlier (extremely
   large value or continuous zeros) in channel data.

Makoto


On Mon, Jul 16, 2018 at 5:50 PM 梅晓林 <melinna.sysu at gmail.com> wrote:

> Dear Makoto,
>
> It is an honor to have your reply! I read your wiki many times, the
> website is really detailed and helpful in instructing how to do ICA.
>
> I can understand the rank deficiency problem that caused by interpolating
> or components removing. However, I cann't understand if it is the rank
> deficiency that leads to the poor running speed.
>
> Under the rank deficiency condition,
> My original command script is
> "EEG=pop_runica(EEG,'extended',1,'interupt','on')";
> It runs very slow, in ages.
>
> If I change it to,
>
> ranknumbs=n;% the actual deficient rank
> EEG=pop_runica(EEG,'extended',1,'interupt','on','pca', ranknumbs);
> It works again, the processing speed become normal and acceptable.
>
> Or if I change it to,
>
> ranknumbs=n; % the actual deficient rank
> EEG=pop_runica(EEG,'extended',1,'interupt','on','ncomps', ranknumbs);
> It works sometimes.
>
> By the way, this problem happens in the version eeglab 13.5.4. In the
> previous version I used (eeglab 10.2.5), it seldom occured this running
> problem. I noticed that there is minimal difference in the two versions of
> runica function, and I am not sure whether it is the reason that make the
> difference.
>
> So, to summarize the question here again: would the rank deficiency lead
> to severe running prolbem in ICA? if it is neccessary to put addition
> parameter in the input box to call the function properlly, such as('pca',or
> 'ncomps')?
>
> Thanks a lot!
>
> Best,
>
> Melinna
>
> Department of Psychology
> Sun-Yat Sen University
> China
>
>
>
>
>
>
>
>
>
>
>
> 2018-07-17 4:58 GMT+08:00 Makoto Miyakoshi <mmiyakoshi at ucsd.edu>:
>
>> Dear Melinna,
>>
>> Very interesting point. I was also surprised that my wiki page did not
>> explain it. I added an explanation to it. I believe it answers your
>> questions. If not let me know.
>>
>> https://sccn.ucsd.edu/wiki/Makoto%27s_preprocessing_pipeline#Rejecting_ICs_to_improve_the_next_ICA.3F_Or_what_is_rank_and_linear_algebra_.2807.2F16.2F2018_updated.29
>>
>> Makoto
>>
>> On Sun, Jul 15, 2018 at 9:10 PM 梅晓林 <melinna.sysu at gmail.com> wrote:
>>
>>> Dear all,
>>>
>>> There are prolbems of running speed that I have met when I am doing ICA
>>> analysis, and I really need your help.
>>>
>>> The data I have is in 66 channels (64 EEG channels and 2 EOG channels).
>>> The preprocess procedure here only involves filtering (high pass, 0.1HZ),
>>> rejecting bad epochs manually, and interpolating bad channels (method,
>>> 'sphereral').
>>>
>>> I found that:
>>> 1, if the bad channels have been removed and interpolated, then the
>>> following ICA on this data is rather time costing, it would take 1~2 hours
>>> to start the learning rate, and 7 hours later, it only went 50 steps.
>>>
>>> However, if I choose reference the data before ICA or doing ICA without
>>> those interpolated channels, the speed of running ICA become normal, and
>>> the data of one subject can be processed in one hour.
>>>
>>> 2, if I have removed one component (usually the eye blick), after that,
>>> when I am trying to re-run ICA, the probelm comes again: the starting
>>> learning rate is low, and it takes ages to run the data.
>>>
>>> The weired thing is that the problem happened here exists in most of the
>>> subjects (30of40), but for others, it is okay to re-run without any change.
>>>
>>> I do have tried your other suggestions that set the 'icatype' to 'pca'
>>> in the second run if some components have been removed, or define the
>>> 'ncomps' as the number of the decreased dimension. The former change
>>> ('pca') can re-speed the ICA but the latter won't (define ncomps).
>>>
>>> I become more and more confused. As the problem mentioned above, my
>>> question here is:
>>>
>>> 1, Can I run ICA if some channels are correlated to others? if there are
>>> correlated channels, the ICA running seems doesn't work.
>>>
>>> 2, After removing one component in the first run, is it possible to
>>> ru-run ICA without any additional parameter setting? I can understand that
>>> the number of  data demension has been reduced after substracting
>>> components, but I don't understand why it can work in some subjects and not
>>> work for all.
>>>
>>> Your reply is really of great value for this work. Looking forward to it.
>>> Thanks a lot.
>>>
>>> Best,
>>>
>>> Melinna
>>> Department of Psychology
>>> Sun-Yat Sen University
>>> China
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> 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
>>
>>
>>
>> --
>> Makoto Miyakoshi
>> Swartz Center for Computational Neuroscience
>> Institute for Neural Computation, University of California San Diego
>>
>
>

-- 
Makoto Miyakoshi
Swartz Center for Computational Neuroscience
Institute for Neural Computation, University of California San Diego
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://sccn.ucsd.edu/pipermail/eeglablist/attachments/20180717/0f3c697f/attachment.html>


More information about the eeglablist mailing list