[Eeglablist] ICA suggests weirdly low rank
Makoto Miyakoshi
mmiyakoshi at ucsd.edu
Tue Jun 11 11:02:38 PDT 2024
Hi Ivonne,
1. What number do you get if you run dataRank = sum(eig(cov(double(EEG.
data'))) > 1E-7); Use that number for the 'pca' option.
2. A few things I can think of if you say your data rank is lower than
predicted.
1. The first thing is the unit of your EEG data. If you are using mV
or even V instead of microV, then you'll lose resolution by 3
and 6 orders
of magnitude. The ICA's empirical 'resolution' of IE-7, suggested by Sven
Hoffmann, is in an absolute sense. If you use nanoV, you'll have the same
tolerance at 1E-10, I predict.
2. Electrodes were bridged by conductive gel. I haven't experienced
it myself, but just 15 min ago one of my colleagues told me that massive
bridging happened in one of the projects. Particularly, if you use a
cloth-based electrode cap, electrodes at around Cz tend to be pushed up.
You may tend to compensate it by injecting a lot of gel into the
electrodes
of that region (indeed, you may have ground and initial
reference electrodes in that area).
3. Your data may be heavily band-pass filtered. Narrow band signals
have less degrees of freedom to be independent. I think Claude Shannon
mentioned narrow-band signals can carry less information.
Off the top of my head, I can think of the above three things. If I were
you I would check those three things to start troubleshooting.
> Also, I am unsure whether I should "force" it to compute 25 ICs using the
gui or the 'pca' option, could this be detremental to ICA results?
If dataRank defined as dataRank = sum(eig(cov(double(EEG.data'))) > 1E-7);
is <25... you may see Kim's ghost in your result! Always use numICs <=
dataRank.
Makoto
On Tue, Jun 11, 2024 at 11:51 AM Ivonne Weyers via eeglablist <
eeglablist at sccn.ucsd.edu> wrote:
> Dear list members,
>
> I am experiencing some issues running pop_runica, namely that it
> produces weirdly *low* rank.
>
> I have a 27-channel infant dataset recorded with a single channel
> reference (Fz), for which I perform the following steps before running
> ICA: filter, remove bad channels, interpolate, re-reference to average
> reference and adding Fz back to the data, epochize (this does not reduce
> the amount of data by much, just truncates the continuous data), reject
> only extremely large artifacts.
>
> I understand from previous discussions as well as the papers on this
> issue that my data becomes rank deficient by n if I interpolate n
> channels. (Is rank reduced further by -1 due to average re-ferencing
> even if the original reference is added back to the data?) When I run
> pop_runica on a 27 channel data set in which channels have been
> interpolated, however, eeglab returns a substantially lower rank, e.g.
> 22 when two channels have been interpolated (which should be 25; or 24
> if average referencing reduces futher).
>
> From what I have read in the mailing list, most people experience the
> opposite, i.e. rank() failing to identify rank deficiency, but I haven't
> found anything on weirdly low rank. Does anyone have an idea what may be
> causing this?
>
> Also, I am unsure whether I should "force" it to compute 25 ICs using
> the gui or the 'pca' option, could this be detremental to ICA results?
>
> I would appreciate any ideas on this, also let me know if I failed to
> include any details on the data.
>
> Thank you & best,
>
> Ivonne
>
> --
>
>
>
> *Dr. rer. nat. Ivonne Weyers (she/her)*
> Psycholinguistics Group
> Institute of Linguistics
> University of Vienna
> Sensengasse 3A, Room 06.12
> 1090 Wien
>
> ivonne.weyers at univie.ac.at
> _______________________________________________
> 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
>
More information about the eeglablist
mailing list