[FieldTrip] ICA/PCA EOG artifact removal
Robert Oostenveld
r.oostenveld at donders.ru.nl
Thu Oct 10 10:43:38 CEST 2013
Hi Craig,
Let me forward this to the email discussion list.
On 9 Oct 2013, at 23:27, CR wrote:
> Hi Robert,
> I wanted to see what your thoughts were on the merits of 2 different methods of removing blinks. I have a 12 minute resting state segment of data, so it has required me to do some things a little differently.
>
> Method 1: ICA
>
> I break the 12 minute segment into 2 second intervals, since doing ICA on the whole segment gave a poor result.
why does it give you a poor result? Has the subject been moving? Is there something else that makes the data not compatible with the stationary mixing assumption?
Or is it the difference in the preprocessing? 12 minutes of data represented in one segment can have drift, whereas 12 minutes of data represented in 2 second snippets will not have the drift (assuming you use the default cfg.demean=yes). Doing a low-pass filter on the continuous data would have a similar effect as segmenting it and demeaning the 2 sec snippets.
> I apply the resulting unmixing matrix to the 12 minute segment and correlate each component with the EOG to find the most relevant components, and reject these based on a threshold.
so a bit like
http://fieldtrip.fcdonders.nl/example/use_independent_component_analysis_ica_to_remove_eog_artifacts
with the correlation method of
http://fieldtrip.fcdonders.nl/example/use_independent_component_analysis_ica_to_remove_ecg_artifacts
> Method 2: PCA
>
> I do a timelock analysis based on the blink onset point returned by the eyelink system. I then PCA the resulting blink ERF. I then reject the component(s) that account for say 98% of the total variance.
>
> Obviously option 2 is much faster. What do you see as the relative merits/problems with the techniques? Technique 1 is largely what the FT tutorials suggest, so what about method 2?
Option 2 makes the large variance component orthogonal to the remainder of the components, whereas in option 1 the eye component and frontal brain components are both estimated, not orthogonal, and removing of the eye component does not remove the frontal brain component.
Option 1 is better, as it is less aggressive in removing brain components.
If speed is a concern, you could do
- ft_resampledata to e.g. 250 Hz or even less, estimate the components based on that and project them out of the original high Fsample data.
- do ft_componentanalysis on a subset of the data (say every 4th data segment after cutting it in pieces), and project them out of the original segmented data
- a combination of the two
- try out anothe rica algorithm (fastica versus runica)
- try out with the options of the ica algorithm, esp the stopping options
- get a faster computer
best regards
Robert
More information about the fieldtrip
mailing list