DOC: more ICA doc improvements
See original GitHub issueI’m working on merging the two ICA tutorials into one. Here they are: one two. I want to expand the narrative a lot, explaining how ICA in MNE-Python works and how the user chooses the right parameter settings. Some of the parameters have confusing names like n_components
, max_pca_components
, n_pca_components
. After reading the docstrings, I could not understand what is going on, so I read the source code for a couple hours. Then I read through #4856, #4882, #5054, and #5276. Now I want to make sure I understand everything before I try to (1) improve the docstrings more, and (2) improve the ICA tutorials. Here is my current understanding:
- pre-whitening: each channel type is standardized to zero-mean, unit-variance. That way, channels with big artifacts are still big relative to other channels of the same type, but across-channel-type signal magnitudes are comparable. If the user supplied
noise_cov
, that will be used instead to do the pre-whitening. We tacitly assume that individual channels are already zero-mean, but don’t check or enforce it. - PCA: the pre-whitened data go into PCA. Only
max_pca_components
are retained. (max_pca_components
must be integer or None) - ICA fitting: the PCs are fed into the ICA algorithm. How many of the PCs go in (and how many ICs you get back) is determined by
n_components
(integer, float, or None). - reconstruction: after possibly marking some ICs to be
exclude
d,ica.apply()
will reconstruct the sensor signals from the (unexcluded) ICs and possibly some of the PCs as well:- If
n_components == n_pca_components
then reconstruction is based only on the ICs. - if
n_components < n_pca_components
then reconstruction is based on the ICs plusPCs[n_components:n_pca_components]
. This has a special case wheren_pca_components == max_pca_components
(orn_pca_components
is None), in which case all of the retained PCs are used in the reconstruction (but the firstn_components
of them are replaced by the ICs).
- If
questions:
- Is any part of that summary incorrect?
- Are there any details missing that you think are important enough to go in the tutorial?
- Are there any details included that you think are too much information to be in the tutorial?
Issue Analytics
- State:
- Created 4 years ago
- Reactions:1
- Comments:11 (11 by maintainers)
Top Results From Across the Web
ICA policy settings | Reference - Citrix Product Documentation
This page provides you descriptions and supported configuration values for ICA policy settings. For more information on working with ...
Read more >BIG Announces Integration of E-Verify Interface Control ...
BIG Announces Integration of E-Verify Interface Control Agreement (ICA) Modifications ; Increased the number of results returned during the ...
Read more >Instructions for Continued Airworthiness Supplement FAQ
DO ICA SUPPLEMENTS EVER GET REVISED? Yes. In the event a Supplement is revised, it will have a letter revision added to the...
Read more >8110.54A - Instructions for Continued Airworthiness ... - FAA
Document Information ; Number: 8110.54A ; Title: Instructions for Continued Airworthiness Responsibilities, Requirements, and Contents ; Type: Order ; Date Issued ...
Read more >New "Adjuster Subscribe" Feature Added in ICA Community
In the spirit of continual improvement, the Industrial Commission ... The daily e-mails will list new documents by Document Name and include.
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
ok fair enough. Maybe the debate more existing with MEG data where you can have > 300 channels, or even HD EEG.
Thanks @drammock for trying to clarify this topic! This is very much needed indeed. On a quick skim, your description is correct.
Regarding what else should go into the tutorial, many questions @sappelhoff brought up pertain to why specific things are the way they are in MNE. I think it is important to include such practical explanations in the tutorial. For example, what if I don’t want to do PCA is a legitimate question, and we could address it by stating that as long as all PCA components are retained this is basically equivalent to not performing PCA at all.
Another important piece of information is to include use cases for supplying different values for
n_components
,max_pca_components
, andn_pca_components
. For example, a very basic use case could be to compute ICs for 64-channel EEG data with no dimensionality reduction with the aim to identify artifact components (e.g. EOG) - which parameters should be set?