The thing is, find_bads_eog does not seem to catch the blink artifact components despite they are quite evident. Actually, the eog_scores of the two first ICA components are 0.81 and -0.77, however I get eog_idx = []
I have also tried using n_components = 0.99 to reduce the number of components. In this case, the two blink components are combined into a single component with an eog_score = 0.97, however, find_bads_eog still does not catch this component as eog_idx = [].
… better don’t rely on this as, like I said, it’s undocumented; but in some situations it might come in handy. (In this specific example, though, both channels yield roughly the same scores, so there’s not much to gain by using both…)
PS:
You’re using ica.plot_components() in your example script. If you pass a Raw or Epochs instance, you can make the figure interactive: ica.plot_components(inst=epochs[~reject_log.bad_epochs]) Clicking on the topomaps will then open the properties plot of the respective component.
Oh, and another thing I’ve noticed: the ICA doesn’t converge on my computer with the default max_iter setting (1000 for fastica). So I had to increase the value to reach convergence:
HI @richard, when I lower the threshold, I don’t seem to get the same components you get for exclusion. I modified the ICA subsection following your recommendations: