[Eeglablist] filters, ICA and erp

Sara Graziadio sara.graziadio at newcastle.ac.uk
Mon Oct 17 05:24:46 PDT 2011


Sorry..another thought..has anybody tried to run amica on unfiltered data? Or at least with a lower filter (0.1Hz perhaps)?  
I will try it now but if anybody did any consistent test for different filters with amica (unpublished data perhaps?) it would be very useful.
Sorry for all these emails (hopefully this is the last one!) but I hope this discussion will be useful to many people and not just me!
Thanks again

Sara


>-----Original Message-----
>From: Sara Graziadio
>Sent: 17 October 2011 12:52
>To: 'Tim Mullen'; Arnaud Delorme; fengyu.f.cong at jyu.fi; Rey Ramirez; Sara
>Graziadio; Steve Luck; david.m.groppe at gmail.com
>Cc: eeglablist
>Subject: RE: [Eeglablist] filters, ICA and erp
>
>Just a thought. I think the problem is intrinsic to the ICA that is not performing
>well on low frequency EEG. I am not sure there is a real solution.
>Summarizing, all of these methods (using the derivative of the data or
>removing the mean) are still high -pass filters and moreover they are non-
>specific so on one side if we don't want to remove the activity below 1HZ from
>your erp these methods are not the solution, on the other side we don't
>know exactly what we are removing of our cortical activity in the low
>frequency range (how large this range would be with these methods? I have
>no idea..up to theta perhaps?). The good thing of these methods is that they
>are not distorting the erp (perhaps..I am not sure about it).
>So overall the best solution to me seems the application of the ica on the
>filtered data (no pca reduction) and then to project the components on the
>unfiltered data even though I agree with Javier and Fengyu that also this
>solution is not perfect and it still modifies the eeg in a quite unpredictable way
>(at least.. unpredictable to me!). Am I right in my interpretation?
>Thanks
>
>Sara
>
>>-----Original Message-----
>>From: eeglablist-bounces at sccn.ucsd.edu [mailto:eeglablist-
>>bounces at sccn.ucsd.edu] On Behalf Of Tim Mullen
>>Sent: 17 October 2011 02:29
>>To: Arnaud Delorme
>>Cc: eeglablist
>>Subject: Re: [Eeglablist] filters, ICA and erp
>>
>>Just to elaborate further on Arnaud's useful comments, in general, any
>>first-order differencing operation can be thought of as a type of a
>>high-pass filter. Usually differencing is used to transform a
>>non-stationary time-series into a stationary series, prior to applying
>>some stationary model (e.g. performing an ICA decomposition, or
>>fitting an autoregressive moving average (ARMA) model). If you know
>>the (polynomial) order of the generating function, you can always
>>induce stationarity by applying a difference filter of that order:
>>i.e. if you have a time-series generated by a quadratic function, you
>>can difference twice to make the series stationary.
>>
>>I agree with Arno that this may be useful for ICA, since
>>non-stationarity w.r.t. the mean is probably one of the largest
>>contributing factors to failure of an ICA decomposition (hence, also
>>one reason why AMICA (which adapts to non-stationary in the data) may
>>perform much better than other stationary ICA algorithms).
>>
>>Tim
>>
>>On Sun, Oct 16, 2011 at 4:26 PM, Arnaud Delorme <arno at ucsd.edu> wrote:
>>> Hi All,
>>> regarding running ICA on the high pass filtered data at 1 Hz, the reason
>>> this is performed is that ICA tends to focus on the data that express the
>>> most power (in case of EEG low frequencies). Since very low frequencies
>>can
>>> represent skin conductance changes that might confuse ICA demixing, it is
>>> better to remove them. However, it might be interesting to try to run ICA
>on
>>> the derivative of the data. Discrete derivation using the diff function is a
>>> linear operation, and it makes the spectrum flat where the influence of all
>>> frequencies is almost made equal. ICA on this data would not focus on low
>>> frequencies. It is an interesting research project that one ought to pursue.
>>> Also, I just wanted to comment on the CORRMAP plugin that Stefan
>>Debener and
>>> Filipa Viola Campo developed. We have worked on integrating further this
>>> plugin with EEGLAB STUDY (because it proved very efficient), and we
>>believe
>>> it is now fully integrated with many new features such as component
>>> preselection etc... It is distributed by default with EEGLAB.
>>> Thanks,
>>> Arno
>>> On Oct 13, 2011, at 11:59 PM, Stefan Debener wrote:
>>>
>>> Hi Steve,
>>>
>>> Yes, ICA training on 1 Hz hp filtered data and applying the weights to the
>>> unfiltered data was my suggestions (and has been used in Scott's lab for
>>> many years, I believe). After playing a lot with preprocessing we found this
>>> to work best as well. The ML code below shows a typical preprocessing
>>> example implementing this. Note that, due to the HP filter, there is no real
>>> benefit in baseline correction of the dummy epochs. The rationale for this
>>> code, as well as a more general introduction into the analysis of
>>> multi-channel EEG data with ICA (inlcuding other assumptions and relazted
>>> preprocessing issues), is descriped in our EEG-fMRI book in chapter 3.1.:
>>>
>>> Debener et al., (2010). Using ICA for the analysis of mutli-channel EEG
>>> data. In: Ullsperger & Debener (Eds.). Simultaneous EEG and fMRI:
>>recording,
>>> analysis, and application (pp. 121-133). Oxford University Press.
>>>
>>> Feel free to cite this chapter when you use the code below.
>>>
>>> Thanks,
>>> Stefan
>>>
>>> Ps: Sara, on the issue of filtering and ERPs, you should test the effect of
>>> the filter, by plotting an overlay of the filtered and unfiltered ERPs.
>>> This, of course, should be done on single subject ERPs, as the grand
>average
>>> sometimes acts as a(nother) filter.
>>>
>>>
>>>
>>> -----------------------------------------------------------------
>>> % miu_inside_ana03.m
>>> % sd
>>> %
>>> % ica on cnt data
>>> % ----------------------------------------------------------------
>>>
>>> MAINPATH = '/data/sd_miu/pilot_inside/';
>>> PATHIN = [MAINPATH, 'data/ana02/'];
>>> PATHOUT = [MAINPATH, 'data/ana03/'];
>>> SUBJ = {'4102', '4103new', '4105', '4106'};
>>> HPF = 1;                 % high pass filter for ica training only
>>> DIM = 63;               % ica dimensionality
>>> EPOCHDUR = 1;      % epoch duration in seconds for pruning
>>> THRES = 4;             % SD cut-off for rejection
>>>
>>> for s = 1:length(SUBJ)
>>> [ALLEEG EEG CURRENTSET ALLCOM] = eeglab;
>>> EEG = pop_loadset('filename', [SUBJ{s}, '_bcgrem.set'], 'filepath', PATHIN);
>>>
>>> % high pass filter
>>> EEG = pop_iirfilt(EEG, HPF, 0, [], [0]);
>>>
>>> % dummy trigger for epoching
>>> for i=1:(EEG.srate*EPOCHDUR):EEG.pnts
>>>     EEG.event(end+1).type = 'S999';
>>>     EEG.event(end).latency = i;
>>> end
>>> EEG = eeg_checkset(EEG);
>>> %eeg_eventtypes(EEG)
>>>
>>> % epoching and pruning
>>> EEG = pop_epoch(EEG, {'S999'}, [0 EPOCHDUR], 'newname', 'tmp epochs',
>>> 'epochinfo', 'yes');
>>> EEG = pop_jointprob(EEG,1,[1:63] ,THRES, THRES,0,0);
>>> EEG = pop_rejkurt(EEG,1,[1:63] ,THRES, THRES,0,0);
>>> EEG = eeg_rejsuperpose(EEG, 1, 1, 1, 1, 1, 1, 1, 1);
>>> EEG = pop_rejepoch(EEG, EEG.reject.rejglobal ,0);
>>>
>>> % ICA
>>> EEG = pop_runica(EEG, 'icatype','runica','dataset',1,'options', {'extended'
>>> 1, 'pca' DIM },'chanind',[1:63]);
>>>
>>> TMP.icawinv = EEG.icawinv;
>>> TMP.icasphere = EEG.icasphere;
>>> TMP.icaweights = EEG.icaweights;
>>> TMP.icachansind = EEG.icachansind;
>>>
>>> % apply to cnt dataset
>>> clear EEG;
>>> EEG = pop_loadset('filename', [SUBJ{s}, '_bcgrem.set'], 'filepath', PATHIN);
>>> EEG.icawinv = TMP.icawinv;
>>> EEG.icasphere = TMP.icasphere;
>>> EEG.icaweights = TMP.icaweights;
>>> EEG.icachansind = TMP.icachansind;
>>> clear TMP;
>>> EEG = pop_saveset(EEG, 'filename',[SUBJ{s}, '_cnt.set'],
>>> 'filepath',PATHOUT);
>>> [ALLEEG, EEG, CURRENTSET] = eeg_store(ALLEEG, EEG, 0);
>>>
>>> end
>>> eeglab redraw;
>>>
>>> ----------------------------------------
>>>
>>>
>>> Am 10/13/11 6:09 PM, schrieb Steve Luck:
>>>
>>> Hi Sara.  Unless you care about frequencies per se, epoching and
>>> baseline-correcting the data won't be a problem.  From a time-domain
>>> perspective, this won't change anything.
>>> BTW, someone else suggested using the 1-Hz high-pass cutoff, performing
>>ICA,
>>> and then applying the component coefficients to the unfiltered data.  That
>>> sounds like a great suggestion, although I don't know if there is a
>>> technical reason why it wouldn't work.  Does anyone out there know if
>>there
>>> would be a problem with this?
>>> Steve
>>> ps- The email trail on this topic has gotten out of hand, so I deleted
>>> everything except the most recent message and your original message.
>>> On Oct 13, 2011, at 7:20 AM, Sara Graziadio wrote:
>>>
>>> Steve,
>>> actually I was refering to your book when I was writing that the filter
>>> would deforme/reduce the erp. But following David Groppe's suggestion
>>would
>>> mean to reduce activity at different frequency all across the spectrum,
>>> wihtout exactly knowing which frequencies I am reducing, am I right? If I
>>> want to look at the psd as well as at the erps, would this analysis just be
>>> correct? I am always concerned about applying data modification that I
>>> cannot fully control..if you know what I mean...
>>> Thank you very much
>>> Best
>>>
>>> Sara
>>>
>>> On Wed, Oct 5, 2011 at 10:46 AM, Sara Graziadio
>>> <sara.graziadio at newcastle.ac.uk> wrote:
>>> Hello,
>>> I would like just a suggestion about some data cleaning/analysis I am doing.
>>> I
>>> am doing an ERP analysis and I want to clean my data first with the ICA. In
>>> theory, though, I should not use an high-pass cutoff higher than 0.1 Hz to
>>> not
>>> reduce the erp amplitude. On the other side the ICA does not work well if
>>> the
>>> high-pass cutoff is lower than 0.5 Hz...what is then the best method to
>>> apply?
>>> Has anybody tested how robust the ica is with a 0.1Hz filter?
>>> I have also another question: I am doing the analysis on 94 electrodes
>>> referenced to Fz. I planned to average reference the data but actually
>there
>>> is
>>> quite a large spread of noise on all the electrodes with this method
>>> (muscular
>>> artefacts for example from the temporal electrodes). But actually almost all
>>> the papers are using the average reference so I was surprised, am I the
>only
>>> one having this problem of noise? Would not be better just to keep the Fz
>>> reference and then perhaps to average the erps for every different cortical
>>> area and do the analysis on these averaged erps?
>>>
>>> Thank you very much
>>>
>>> Best wishes
>>>
>>> Sara Graziadio
>>> Research Associate
>>> Newcastle University
>>>
>>> --------------------------------------------------------------------
>>> Steven J. Luck, Ph.D.
>>> Director, Center for Mind & Brain
>>> Professor, Department of Psychology
>>> University of California, Davis
>>> Room 109
>>> 267 Cousteau Place
>>> Davis, CA 95618
>>> (530) 297-4424
>>> E-Mail: sjluck at ucdavis.edu
>>> Web: http://mindbrain.ucdavis.edu/people/sjluck
>>>
>>Calendar: http://www.google.com/calendar/embed?src=stevenjluck%40gm
>ai
>>l.com&ctz=America/Los_Angeles
>>> --------------------------------------------------------------------
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
>>> To unsubscribe, send an empty email to eeglablist-
>>unsubscribe at sccn.ucsd.edu
>>> For digest mode, send an email with the subject "set digest mime" to
>>> eeglablist-request at sccn.ucsd.edu
>>>
>>> --
>>> Prof. Dr. Stefan Debener
>>> Neuropsychology	Lab
>>> Department of Psychology
>>> University of Oldenburg
>>> D-26111 Oldenburg
>>> Germany
>>>
>>> Office: A7 0-038
>>> Phone: +49-441-798-4271
>>> Fax:   +49-441-798-5522
>>> Email: stefan.debener at uni-oldenburg.de
>>>
>>> _______________________________________________
>>> Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
>>> To unsubscribe, send an empty email to eeglablist-
>>unsubscribe at sccn.ucsd.edu
>>> For digest mode, send an email with the subject "set digest mime" to
>>> eeglablist-request at sccn.ucsd.edu
>>>
>>> _______________________________________________
>>> Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
>>> To unsubscribe, send an empty email to eeglablist-
>>unsubscribe at sccn.ucsd.edu
>>> For digest mode, send an email with the subject "set digest mime" to
>>> eeglablist-request at sccn.ucsd.edu
>>>
>>
>>
>>
>>--
>>---------  αντίληψη -----------
>>
>>_______________________________________________
>>Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
>>To unsubscribe, send an empty email to eeglablist-
>>unsubscribe at sccn.ucsd.edu
>>For digest mode, send an email with the subject "set digest mime" to
>>eeglablist-request at sccn.ucsd.edu




More information about the eeglablist mailing list