SSP vs. ICA for Artifact Correction

Hello,

MNE provides both SSP and ICA methods for correcting artifacts (eye blinks, saccades, and heartbeat). However, I haven't ever seen these methods compared and was curious if anyone has any reasons to prefer one method over the other? I remember seeing on one of the MNE documentation pages a while back that ICA was recommended over SSP, but I haven't been able to find this statement anymore (perhaps it was removed?). Was there a reason behind that recommendation?

Thanks!
Matt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20160908/a73af8dc/attachment.html

Dear Matthew,

There is a recent study by Haumann and co-authors that compares ICA with
SSP for rejecting artefacts (http://www.ncbi.nlm.nih.gov/pubmed/27524998).
They conclude that ICA performs better than SSP but one should be careful
with ICA when dealing with low SNR data.

Best regards,
Tuomas

Dear Matthew,

in my current experience, the differences between SSP and ICA are
negligible, *when the methods are applied correctly*. The paper Tuomas
linked contains two nice example of how not to apply SSP correctly.

(1) The authors didn't chance the default of removing 2 SSP components,
where they should probably have used 1 in certain cases (EEG usually
only has 1 EOG component). So it's no surprise they found that the
signal was reduced as well as the noise. Take home message: always check
that the number of components you remove is appropriate.

(2) The authors never mention checking whether the extracted EOG epochs
were correct. It is likely that they used the automated methods provided
by MNE-Python blindly and just went with it. This could be acceptable in
other studies (as long as the data is 'good enough' for the intended
purpose), but certainly not in a study with the explicit focus on
comparing noise reduction methods! Take home message: always check the
EOG epochs found with the 'create_eog_epochs' function. Some things in
the data (excessive movements by the subject, concatenating raw files
that cause 'jumps' in the signal) can really mess up the automated
algorithm.

In conclusion, I recommend the ICA pipeline in MNE-Python because that
method is easier to apply correctly :slight_smile: Notably because it doesn't rely
on EOG event detection and because it has an automated manner of
selecting the number of components to remove (plus the components are
not orthogonal, so removing a second component is safer). But even with
the ICA pipeline: double check the results! At the very least, check
whether the noise components marked by the automated method make sense.

regards,
Marijn.

I slightly disagree with Marijn,

They are not equally good because the methods are significantly different.
SSP is less appropriate for ECG/EOG on statistical grounds. It learns
spatial filters by extracting PCA components from the covariance computed
over artifact samples. PCA assumes Gaussian distributions. But in our case
these artifacts typically have skewed and/or peaky distributions, they are
non-Gaussian and ICA happens to be designed for learning spatial filters
from such signals. In my experience SSP can be good but often not good
enough. It tends to remove too much or not enough and is more difficult to
calibrate. This difference is less important for ERP/F analyses but they
can matter for single trial and connectivity estimation. If you do decoding
you don't have to bother either, your supervised model will learn the
important patterns. However, SSP can do an excellent job however at global
denoising when computed on empty room data.
My 2 cents.

Denis