[Eeglablist] The number of the ICA components is smaller than the number of channels.
Jason Palmer
japalmer29 at gmail.com
Fri Mar 11 14:11:21 PST 2011
Dear Hui,
Your data was probably not full rank before you high-pass filtered. You can
check the condition of the data by examining the eigenvalues:
>> eig( EEG.data(2:63,:) * EEG.data(2:63,:)';
If the smallest eigenvalues are negative or much closer to zero than the
largest eigenvalue, then the data is not well conditioned, and PCA is used
to reduce the dimensionality. Data that is not full rank is like having 3
dimensional data that all lies on a plane.
If there are large drifts in the data relative to the EEG signal variance,
or epochs with different means, that might explain why the raw data is not
full rank but the high-pass filtered data is.
It is important to high-pass filter your data before running ICA if there is
any non-stationary "drift" etc. in the data. ICA assumes stationariity of
the data, and in particular a constant channel mean (no drift). High-pass
filtering should be done on the continuous data (before epoching).
Best,
Jason
From: eeglablist-bounces at sccn.ucsd.edu
[mailto:eeglablist-bounces at sccn.ucsd.edu] On Behalf Of hui zhang
Sent: Wednesday, March 09, 2011 8:46 AM
To: David Post
Cc: eeglablist
Subject: Re: [Eeglablist] The number of the ICA components is smaller than
the number of channels.
Hi David,
Thank you. But my data does have 66 channels, and I am interested in 2:63.
And for different data sets, the output of detected channel number is
different.
After high pass filter, it became normal. Anyone here can explain this?
On Wed, Mar 9, 2011 at 6:55 AM, David Post <djp227 at cornell.edu> wrote:
Hello Hui,
I believe the problem you are experiencing is due to the fact that your data
has 39 channels, and in your code you use the option 'chanind' and set the
channels to 2:63. You might fix your problem by instead using the command:
EEG = pop_runica(EEG, 'icatype', 'runica', 'chanind', 1:39, 'extended', 1);
Regards,
David
On Tue, Mar 8, 2011 at 5:02 PM, Arnaud Delorme <arno at ucsd.edu> wrote:
Dear Hui,
as the warning says, this is probably due to some problem with Matlab when
computing the rank of your Matrix. You should upgrade to a newer Matlab
version and this should be fine.
Best regards,
Arno
On Feb 4, 2011, at 12:39 PM, hui zhang wrote:
Hi,
When using the function of pop_runica to run ica on epoched data, I got the
following message:
Attempting to convert data matrix to double precision for more accurate ICA
results.
Warning: fixing rank computation inconsistency (39 vs 38) most likely
because running under Linux 64-bit MatlabData rank (39) is smaller than the
number of channels (62).
Input data size [39,654000] = 39 channels, 654000 frames/nAfter PCA
dimension reduction,
finding 39 ICA components using extended ICA.
The matlab code:
eeglab;
EEG = pop_loadset('filename',filename);
EEG = pop_runica(EEG, 'icatype', 'runica', 'chanind',[2:63], 'extended', 1);
I ran this code on datasets of previous project, it seems fine.
The version of eeglab installed on my computer is: eeglab9.0.1.2b.
Does anyone have any idea on this? Is there any ways I can turn the pca off
in my code?
Thanks in advance!
-Hui
_______________________________________________
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://sccn.ucsd.edu/pipermail/eeglablist/attachments/20110311/5237803e/attachment.html>
More information about the eeglablist
mailing list