I am working on constructing the ERPs of EEG data that was provided to me. The goal is to compare two conditions (Think-NoThink) in a task related to historical memory. I filtered the EEG data between 0.1 and 25 Hz, epoched the data, manually rejected epochs, removed epochs where the peak-to-peak amplitude exceeded 300 µV, and concatenated the epochs for all subjects.
The EEG data only has 6 channels, so automated cleaning is not a viable option for me.
I have tried several approaches, and this is the best plot I have achieved so far:
Is there anything else I can do to improve my work? The goal is to look for differences due to the task between 300 and 600 ms, and I believe the graph shows something similar. However, it is still too noisy to be clear.
As a first step, I would suggest calculating the difference wave (ERP for Think minus ERP for NoThink, via mne.combine_evoked()) in every participant, and then averaging the waves across participants to get a grand average representation. I would advise against simply concatenating all epochs from all participants.
Besides what you have done, I can think of doing ICA to remove at least ocular artifacts, maybe also muscle artifacts. I did this part in EEGLAB so can’t speak for how to do it on MNE side.
It looks to me that the biggest problem is not having enough epochs or subjects if this is the grand average.
Yes, because after data cleaning, not all participants might have the same number of trials left, leading to an imbalance in weights.
Generally, the way to go is always a two-level analysis: first, handle each participant separately (e.g. calculate an ERP, find a peak, etc.) and only as a second step aggregate these results across participants to get a grand mean.