Tutorial 25: Difference
[TUTORIAL UNDER DEVELOPMENT: NOT READY FOR PUBLIC USE]
Authors: Francois Tadel, Elizabeth Bock, Dimitrios Pantazis, Richard Leahy, Sylvain Baillet
In this auditory oddball experiment, we would like to test for the significant differences between the brain response to the deviant beeps and the standard beeps, time sample by time sample. Until now we have been computing measures of the brain activity in time or time-frequency domain. We were able to see clear effects or slight tendencies, but these observations were always dependent on an arbitrary amplitude threshold and the configuration of the colormap. With appropriate statistical tests, we can go beyond these empirical observations and assess what are the significant effects in a more formal way.
We are typically interested in comparing different groups of samples. We want to know what is significantly different in the brain responses between two experimental conditions or two groups of subjects. So we will be essentially computing differences, then testing if these differences are significantly different from zero.
This tutorial focuses only on the first part of this problem. Computing a difference between condition A and condition B sounds trivial, but it requires some reflexion when it comes to interpreting the sign of the subtraction of two signals oscillating around zero. Many options are available, we will try to give clear directions of the use cases for each option. The statistical significance will be discussed in the next tutorial.
Sign of the signals
First we need to define on which signals we want to compute the difference: sensor recordings, constrained sources (one signal per grid point) or unconstrained sources (three signals per grid point). For the first two we can compare directly the signals oscillating around zero or their absolute value, for unconstrained sources we have the additional option to compare the norm of the three orientations.
Using the rectified signals (absolute value) gives us an idea of the amount activity in one particular brain region, but alters the frequency information and therefore cannot be used for time-frequency or connectivity analysis. Additionally, the rectified signals may not be appropriate to detect effects between different experimental conditions, as illustrated in the next section.
In general, you should not apply an absolute value (or a norm) explicitely to your data. The only application cases for rectified signals are the display of the cortical maps and the comparison of magnitudes between conditions, and both can be done on the fly.
Now let's consider the two conditions for each available option. The examples below show the difference (deviant-standard) for one signal only, corresponding to the auditory cortex. The operator |x| represents the absolue value of x.
We observe some important differences between (A-B) and (|A|-|B|), in the absolute case the amplitude of the difference is not representative of the distance between the green and the red curves. In general, the sign of the signal recorded by and MEG or EEG sensor is meaningful and we need to keep it in the analysis to account for the differences between conditions.
Never use an absolute value on sensor data.
We also observe important differences between (A-B) and (|A|-|B|). At 175ms, we have the highest distance between the red and green curves, but it corresponds to a zero in the rectified difference.
This measure represents better the amount of distance between the two conditions. However, its sign is ambiguous and cannot be used to claim that "A is higher than B" (A>B) or "B is stronger than A" (B>A). As illustrated in the source estimation tutorial, the sign of the current density maps depends on the orientation of the source. Therefore, depending on the orientation, (A>B) could match cases a/b/e in the table below, for which (A-B) can be either positive (a/e) or negative (b) values.
This is an appropriate measure to use when the polarity of the signal is important to you, for example when suppression of a negative peak (A-B<0) would be viewed differently than suppression of a positive peak (A-B>0) or a polarity change (sign(A) different from sign(B)).
- Suppression of positive signals from A to B (case a) produces the same value as an increase in the negative signal from A to B (case d). Similarly cases b and c will produce the same value. For this reason interpretation of the results requires that you also examine the actual polarities of the two signals at locations in time and space where significant effects are detected.
This measure is insensitive to polarity so not adapted to represent the amount of difference between the two conditions, but its sign is meaningful.
Relation (A>B) translates to cases a/b/e in the table above, for which |A|-|B| is always positive.
Reciprocately, (B>A) translates to cases c/d, for which |A|-|B| is always negative.
- The sign indicates the direction of magnitude change and avoids the ambiguity encountered in the earlier statistic (e.g. case a vs. case d) but cannot differentiate between suppression of positive and negative signals (cases a and b). This measure will also avoid the confound described above for blurring across sulcal banks but will also be less sensitive to cases in which differences in response involve differences in polarity and/or latency than the former measure (e.g. case e in the above table).
The exact same observations apply to the unconstrained sources, using the norm of the three orientations instead of the absolute values. Considering that X and Y are the source vectors with three components each (x,y,z) for conditions A and B.
Norm(X-Y): This statistic will detect vector differences between the two signals which can occur if the magnitude and/or orientation changes. It differs from (Norm(X)-Norm(Y)) in being sensitive to changes in apparent source orientation, but cannot differentiate increases from decreases in amplitude.
Norm(X)-Norm(Y): This is the unconstrained equivalent to |A|-|B|, i.e. it will produce a signed value that reflects increases or decreases in magnitude from A to B and should be interpreted similarly. Unlike Norm(X-Y) it is not sensitive to rotation of the source from A to B unless there is an accompanying amplitude change. But on the other hand, because the statistic is signed, we can differentiate between increases and decreases in amplitude.
The examples above only show minimum norm current density maps that haven't been normalized. But the exact same conclusions can be applied to normalized source values, as long as you do not rectify the signals during the computation the normalization.
As a reminder, you should normalize the source maps if you are intending to compare different subjects, it will help bringing them to the same range of values. The list below shows the valid operations for the Zscore normalization, but the same is applicable for dSPM, sLORETA and MNp.
Zscore(A) - Zscore(B): Correct amplitude, ambiguous sign.
abs(Zscore(A)) - abs(Zscore(B)): Ambiguous amplitude, meaningful sign.
norm(Zscore(A) - Zscore(B)): Correct amplitude, no sign.
norm(Zscore(A)) - norm(Zscore(B)): Ambiguous amplitude, meaningful sign.
Always avoid using the following measures, for any reason (display, differences or statistics):
Before running complicated statistical tests that will take hours of computation, you can start by checking what the difference of the average responses looks like. If in this difference you observe obvious effects that are clearly not what you are expecting, it's not worth moving forward with finer analysis: either the data is not clean enough or your initial hypothesis is wrong.
Absolute difference: |A|-|B|
We are going to use the Process2 tab, at the bottom of the Brainstorm figure. It works exactly like the Process1 tab but with two lists of input files, referred to as FilesA (left) and FilesB (right).
In Process2, drag and drop the non-normalized deviant average on the left (FilesA) and the non-normalized standard average on the right (FilesB).
Run the process "Difference > Difference A-B".
Select the option "Use absolute values", which will convert the unconstrained source maps (three dipoles at each cortex location) into a flat cortical map by taking the norm of the three dipole orientations before computing the difference.
Rename the new file in "deviant|norm - standard|norm", double-click on it and explore it in time. This is a flat cortex map (only 15000 values), with positive and negative values. It should be displayed using a colormap that shows relative values (right-click > Colormap > Uncheck the option "Absolute values").
- We are looking at the rectified difference (norm(deviant)-norm(standard)) so positive/red regions indicate higher activity levels for the deviant beeps, and negative/blue regions higher activity for the standard beeps.
Before 50ms: The motor activity in the deviant is probably due to the previous stims.
P50: Maybe a stronger response in the primary auditory cortex for the standard condition.
MMN (125ms): Stronger response for the deviant (left temporal, inferior frontal).
150ms: Stronger response in the auditory system for the standard condition.
175ms: Stronger response in the motor regions for the standard condition (motor inihibition).
After 200ms: Stronger response in the deviant condition.
Plot the time series for scout A1 (relative and absolute values).
Relative difference: (A-B)
Rename the new file in "deviant - standard", double-click on it and explore it in time. This file still has the three values for each vertex of the cortex. The values for each point and each orientation can be positive or negative, but only the norm of the three orientation is displayed on the cortex. You will only see positive values in this figure, therefore it is better to configure the colormap accordingly (right-click > Colormap > Check the option "Absolute values").
- We can see with much more constrast the areas and times where the two conditions are different, but we lose the capacity to say which one is stronger. This is not a very helpful display by itself, but it is the measure we will use in most cases when computing statistical tests between conditions.
Plot the time series for scout A1 (relative values and norm).
Difference of means
Another process can compute the average and the difference at the same time. We are going to compute the difference of all the trials from both runs at the sensor level. This is usually not recommended because the subject might have moved between the runs. Averaging the recordings across runs is not accurate but can give a good first approximation, in order to make sure we are on the right tracks.
In Process2, select all the deviant trials (Files A) and all the standard trials (Files B).
Run the process "Test > Difference of means", select the option "Arithmetic average".
Rename the new file in "Deviant-Standard", double-click on it to display it. The difference deviant-standard does not show anymore the early responses (P50, P100) but emphasizes the difference in the later process (MMN/P200 and P300).
In the case of time-frequency maps, there is no sign ambiguity.