ica.apply() : apply ica on raw data or filtering data ?

Hello everyone,

I am processing my EEG data and I have a question about ICA.

I performed an ica on my epochs (because my epochs are 9s long) and the results are better in my case than with continuous data. No baseline was used and I followed the recommendations of the MNE tutorial. My epochs are taken from the raw and filtered with l_freq = 1Hz.

Then I selected with find_bads_eog() and manual verification my components of interest (max 4).

I apply ica with ica.apply() on my 0.1Hz and 40Hz filtered epochs as I defined before (to eliminate slow drifts and power line).

I get very good results, and the ocular artifacts are well repaired.

My question: should ica.apply() be applied to the raw data unfiltered, or filtered for ica (1Hz, as on the tuto), or filtered as I chose (0.1 - 40Hz)? In either case, what are the advantages and/or disadvantages? And what is the impact on the EEG signal?

Thanks for your help! (and for the MNE and the forum in general, which are rich in content)

Johan

I don’t see often unfiltered signal for analysis stage; filtering removes unwanted frequencies and let’s you see smaller activity that could have been hidden.

The difference between filter between (1, 40) Hz and (0.1, 40) Hz lies in the slow waves. If they are of interest to you, keep them; else you can filter at 1 Hz.

As you did, ICA should be fitted on a 1 Hz highpass filtered dataset because slow waves and especially drifts are rarely independent. You can then apply the ICA on either of the 3 datasets.

Mathieu

2 Likes

Thank you very much for these details! I will follow your advice.

Have a nice day!

Johan

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.