[Eeglablist] Analysis of Frontal Alpha Asymmetry - am I on the right track?
Makoto Miyakoshi
mmiyakoshi at ucsd.edu
Thu Jul 30 12:36:31 PDT 2020
Dear Katia,
> % Here I am looking at two options and I have no idea which one to choose:
> alphaL = mean(spectraLagg(alpha_ind));
> alphaR = mean(spectraRagg(alpha_ind));
>
> alphaLb = mean(10.^(spectraLagg(alpha_ind )/10));
> alphaRb = mean(10.^(spectraRagg(alpha_ind )/10));
The former is averaging the log-converted power in 10*log10 dB, while the
latter is averaging the raw power in uV^2
> FCA = log(alphaL) - log(alphaR)
No need to take a log here. Simply, alpha-alphaR is fine.
> FCAb = log(alphaLb) - log(alphaRb)
You can report raw power difference as alpphaLb-alphaRb.
If you want to convert it to 10*log10, FCAb =
10*log10(alphaLb)-10*log10(alphaRb)
>1) Is it acceptable to run spectopo() only on selected channels or should I
run it on the whole dataset and then extract the channels I am interested
in? Does it make any difference?
Yes you can. It does not make difference whether you include all the
channels or selected channels. PSD is computed in a repeated univariate way.
> 2) Is it acceptable to simply average across my channels of interest to
obtain a composite alpha power score, or should I employ some more
sophisticated calculation?
Yes, I think that is probably more common practice. People casually average
electrodes because they have a lot of them.
> 3) *The most most-pertinent question*: should I go with FCAa or FCAb? For
this dataset one ends up being a positive and the other a negative number,
so this is a really important choice that I have no idea how to make. From
what I understand it has to do with the values being expressed in either
decibels or in uV^2, correct? Raw spectopo() output (is that dB?)? contains
negative values which obviously mess things up for me when I average, so I
am leaning towards option b, but the fact that similar transformation was
not mentioned in any of the papers I looked at makes me doubt myself.
If you want to report raw uV^2 unit value, FCAb without taking log in the
end. If you want to report dB-converted value, FCAa without taking log in
the end.
> 4) I also have a question regarding the spectopo() function. In the
eeglablist post I link above, Arno calls the function with EEG.pnts as the
second argument (frames per epoch). But in Makoto's example the value used
is 0. Why would it ever be 0? Should it be 0 or EEG.pnts?
I guess 0 will be replaced internally with EEG.pnts as a default value.
> I will be so incredibly grateful to get your input: for my first foray
into
the world of EEG analysis I picked a method that nobody I know has ever
used, so I am completely relying on what I can find out myself and your
kindness :)
I won't be hosting the mailing list in August but if you want I can keep
watching your post to provide answers continuously.
Makoto
On Sun, Jul 26, 2020 at 8:58 AM Katarzyna Dudzikowska <
k.a.dudzikowska at gmail.com> wrote:
> Dear all,
>
> First of all, thank you for all the help I have gotten from this mailing
> list so far, I really appreciate it!
>
> For my MSc thesis I am trying to run a Frontal Alpha Asymmetry analysis.
> The end goal is an individual numeric score capturing interhemispheric
> difference in alpha activation for each of my subjects. I have extracted
> 1-sec-long epoch from each trial and I am going to derive the score from a
> dataset containing just these epochs. A typical dataset, in case it
> matters, has around 300 epochs, 250 frames per epoch (as sampling rate is
> 250Hz).
>
> Rather than use just one pair of electrodes, I want to use an aggregate of
> AF8, F6 and F8 for the right and AF7, F5 and F7 for the left hemisphere.
>
> Based on the previous literature, I want to run a fast Fourier transform
> analysis with a 50% Hamming window on the epoched dataset, extract alpha
> frequency power (8-13Hz), average across the right-side channels to obtain
> right alpha power and across the left-side channels to obtain left alpha
> power, log transform these values and subtract the left from the right to
> get my final score.
>
> This sounds simple enough, but I am not sure
> a) whether the code I have written definitely does the things I described
> above (I think so, but I would really love to get some feedback)
> b) whether before I log transform and subtract the values I should "compute
> absolute power" as described by Makoto here:
>
> https://sccn.ucsd.edu/wiki/Makoto's_useful_EEGLAB_code#How_to_extract_EEG_power_of_frequency_bands_.2806.2F06.2F2020_updated.29
> I have to admit that I do not understand why I would/wouldn't and what it
> does. I have searched the list and found some discussions you had on this
> topic, but I didn't understand much of it I'm afraid.
>
> Below is the code I compiled from literature + Makoto's advice I link
> above + this post:
> https://sccn.ucsd.edu/pipermail/eeglablist/2007/001903.html
> Does it make sense?
>
> %Define channels of interest:
> left_ind = [4 8 9]; %AF7, F7, F5
> right_ind = [7 15 16]; %AF8, F6, F8
>
> %Obtain power spectra at specified channels on the left and on the right
> [spectraL, freqs] = spectopo(EEG.data(left_ind,:,:), EEG.pnts, EEG.srate,
> 'winsize', EEG.srate, ...
> 'wintype', 'hamming', 'overlap', EEG.srate/2, 'plot', 'off');
>
> [spectraR] = spectopo(EEG.data(right_ind,:,:), EEG.pnts, EEG.srate,
> 'winsize', EEG.srate, ...
> 'wintype', 'hamming', 'overlap', EEG.srate/2, 'plot', 'off');
>
> % Aggregate of the chosen channels
> spectraLagg = mean(spectraL)
> spectraRagg = mean(spectraR)
>
>
> %Define alpha power as between 8 and 13Hz.
> alpha_ind = find(freqs>=8 & freqs<=13);
>
> % Here I am looking at two options and I have no idea which one to choose:
> alphaL = mean(spectraLagg(alpha_ind));
> alphaR = mean(spectraRagg(alpha_ind));
>
> FCA = log(alphaL) - log(alphaR)
>
> alphaLb = mean(10.^(spectraLagg(alpha_ind )/10));
> alphaRb = mean(10.^(spectraRagg(alpha_ind )/10));
>
> FCAb = log(alphaLb) - log(alphaRb)
>
> My most pertinent questions are:
>
> 1) Is it acceptable to run spectopo() only on selected channels or should I
> run it on the whole dataset and then extract the channels I am interested
> in? Does it make any difference?
>
> 2) Is it acceptable to simply average across my channels of interest to
> obtain a composite alpha power score, or should I employ some more
> sophisticated calculation?
>
> 3) *The most most-pertinent question*: should I go with FCAa or FCAb? For
> this dataset one ends up being a positive and the other a negative number,
> so this is a really important choice that I have no idea how to make. From
> what I understand it has to do with the values being expressed in either
> decibels or in uV^2, correct? Raw spectopo() output (is that dB?)? contains
> negative values which obviously mess things up for me when I average, so I
> am leaning towards option b, but the fact that similar transformation was
> not mentioned in any of the papers I looked at makes me doubt myself.
>
> 4) I also have a question regarding the spectopo() function. In the
> eeglablist post I link above, Arno calls the function with EEG.pnts as the
> second argument (frames per epoch). But in Makoto's example the value used
> is 0. Why would it ever be 0? Should it be 0 or EEG.pnts?
>
> I will be so incredibly grateful to get your input: for my first foray into
> the world of EEG analysis I picked a method that nobody I know has ever
> used, so I am completely relying on what I can find out myself and your
> kindness :)
>
> Best regards,
> Katia Dudzikowska
> _______________________________________________
> 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