[Eeglablist] ICA problem

Joseph Dien jdien07 at mac.com
Mon Feb 15 17:39:53 PST 2010

Sounds like I may have some helpful feedback then.  While I can't claim to have done a systematic analysis of this issue, I can say that for the datasets where I looked at this in detail, the rank(data) test didn't get triggered for two reasons:

1) all the instances of it are hidden behind an "if lrate> MIN_LRATE" test.  So what happens at least sometimes is that when the rank is deficient, 
the ICA run goes into repeated rounds of the weights blowing up and the learning rate being reduced.  At the end of this extended process, the lrate is too low to trigger the "if" statement and so the rank test is never invoked; instead, the error message is "runica(): QUITTING - weight matrix may not be invertible!"

2) Even when the lrate test is passed, the rank test may still not be triggered.  The reason, in the case that I looked at in close detail, is that the data matrix was rotated into imaginary numbers and somehow this resulted in the rank going (for a 24 channel dataset) from 23 to 24, hence testing as full rank.

These observations were made on the following installation:

Matlab 7.8.0
EEGlab 7_2_9_19b (not the current version but I looked at the current release of runICA and the code appears unchanged in this respect)
Windows XP Professional SP3



On Feb 1, 2010, at 6:56 PM, Arnaud Delorme wrote:

>> Arno -- There was a problem with the Matlab rank() function on 64- 
>> bit machines, I believe. Has this been solved and Is the auto rank  
>> detection -> PCA option currently implemented in runica/binica?   
>> Perhaps we could add a 'toy' rank() function pre-test (e.g. finding  
>> the rank of a small full-rank matrix to detect if rank() is  
>> working...) ? If so, run the rank test; if not, then warn the user  
>> or build a work-around rank function that will work properly?
> This is correct. This was a problem with Matlab 64-bit in 2007. One of  
> the EEGLAB user, Sven Hoffman, implemented an alternate computation of  
> the rank which we used whenever the Matlab rank is deficient. However,  
> the new Matlab rank is fine now.
> Arno
> _______________________________________________
> 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


Joseph Dien,
Senior Research Scientist
Center for Advanced Study of Language
University of Maryland 
7005 52nd Avenue
College Park, MD 20742-0025

E-mail: jdien07 at mac.com
Phone: 301-226-8848
Fax: 301-226-8811

More information about the eeglablist mailing list