Hello, I am experimenting with ICA artifact correction and am a bit confused about some things. First, I was wondering why my ICA components have a sign flip from my eog channels:
There is a stochastic element in ICA that causes the signs to randomly flip between runs of ICA. The decomposition itself remains the same, though. Try re-running ICA a few times on the same machine, or on a different computer. Sooner or later you should arrive at a solution where the signs are flipped.
The implication here is that the results are not reproducible in terms of the sign, and if you want to ensure that you always get the same orientation of the signal, you should pass random_state.
It’s difficult to tell what’s going on unless you share your full preprocessing code and the data. But to me it looks like you probably didn’t high-pass filter the data, since there are clear DC shifts visible.
Lastly I’m wondering why you’re applying ICA to the raw data and not to epoched data? If you have an event-related paradigm, creating epochs and running ICA on those is usually the better approach. But of course, using ICA with continuous data is fine, too. I’m just asking because you followed our tutorial, and there we use continuous data, and I want to make sure you know that this is not the only way to do it.