25432
Comment:
|
25519
|
Deletions are marked like this. | Additions are marked like this. |
Line 22: | Line 22: |
* '''Within subject''': Contrast two experimental conditions across trials, for one single subject. | * '''Single subject''': Contrast two experimental conditions across trials, for one single subject. |
Line 25: | Line 25: |
* '''Between subjects''': Contrast two experimental conditions across multiple subjects. | * '''Group analysis, within subject''': Contrast two conditions A and B measured for each subject. |
Line 28: | Line 28: |
* '''Between groups''': Contrast two groups of subjects for one given experimental condition. | * '''Group analysis, between subjects''': Contrast two groups of subjects for one condition. |
Line 39: | Line 39: |
* Significance level obtained with '''two-sided''' tests. * Correct effect size: We identify correctly '''where and when''' the conditions are different. |
* Correct detection: Identify correctly '''where and when''' the conditions are different. |
Line 42: | Line 41: |
* '''|A - B| = 0''' * Tests the null hypothesis H0:(|A-B|=0) against the alternative hypothesis H1:(|A-B|>0) * Significance level obtained with '''one-sided''' tests (upper tail). * Correct effect size: We identify correctly '''where and when''' the conditions are different. * No sign: We cannot say which condition is stronger. * '''|A| = |B|''' * Tests the null hypothesis H0:(|A|=|B|) against the alternative hypothesis H1:(|A|<<HTML(≠)>>|B|) * Significance level obtained with '''two-sided''' tests. * Incorrect effect size: Doesn't detect correctly the effects when A and B have opposite signs. * Correct sign: We can identify correctly which condition has a '''stronger response'''. * |x| represents the modulus of the values: * Absolute value for scalar values (recordings, constrained sources, time-frequency maps) * Norm of the three orientations for unconstrained sources. |
* '''Power(A) = Power(B)''' * Tests the null hypothesis H0:(Power(A)=Power(B)) against the alternative hypothesis H1:(Power(A)<<HTML(≠)>>Power(B)) * Incorrect detection: Not sensitive to the cases where A and B have opposite signs. * Meaningful sign: We can identify correctly which condition has a '''stronger response'''. * Power(x) = |x|<<HTML(<SUP>2</SUP>)>>, where |x| represents the modulus of the values: <<BR>> - Absolute value for scalar values (recordings, constrained sources, time-frequency) <<BR>> - Norm of the three orientations for unconstrained sources. * '''Multiple comparisons''': FDR is a good choice for correcting p-values for multiple comparisons. * If nothing appears significant, don't start by blaming the method ("FDR doesn't work"). In the first place, it's probably because there is no clear difference between your sample sets or simply because your sample size is too small. For instance, with less than 10 subjects you cannot expect to observe very significant effects in your data. * If you cannot increase the sample size, consider reducing the number of multiple comparisons you perform (test only the average over a short time window, a few sensors or a region of interest) or using a cluster-based approach (see [[http://neuroimage.usc.edu/brainstorm/Tutorials/Statistics#FieldTrip_implementation|example]]). ==== Design considerations ==== * Use within-subject designs whenever possible (i.e. collect two conditions A and B for each subject), then contrast data at the subject level before comparing data between subjects. * Such designs are not only statistically optimal, but also ameliorate the between-subject sign ambiguities as contrasts can be constructed within each subject. |
Line 71: | Line 69: |
== How many trials to include? == * '''Single subject''': Include all the good trials (unless you have a very low number of trials). <<BR>>See the [[http://neuroimage.usc.edu/brainstorm/Tutorials/Averaging#Number_of_trials|averaging tutorial]]. * '''Group analysis''': Use a similar numbers of trials for all the subjects (no need to be strictly equal), reject the subjects for which we have much less good trials. |
|
Line 73: | Line 75: |
* Average the epochs across sessions and subjects: OK. | * Average the epochs across acquisition runs: OK. * Average the epochs across subjects: OK. |
Line 76: | Line 79: |
* Group averages: Use the same number of trials for all the subjects. === Statistics: Within subject === |
=== Statistics: Single subject === |
Line 81: | Line 83: |
* Use as many trials as possible for A and B: No need to have an equal number of trials. === Statistics: Between subjects === |
=== Statistics: Group analysis, within subject === |
Line 87: | Line 88: |
* Use the same number of trials for all the averages. | |
Line 91: | Line 91: |
=== Statistics: Between groups === | === Statistics: Group analysis, between subjects === |
Line 94: | Line 94: |
* For each subject, compute the sensor average for conditions A and B. * Use the same number of trials for all the averages. |
* For each subject, compute the sensor average for the condition to test. |
Line 101: | Line 100: |
* Average the epochs within each session: OK. * Averaging across sessions: Not advised because the head of the subject may move between runs. * Averaging across subjects: Strongly discouraged because the shape of the heads vary but the sensors are fixed. One sensor does not correspond to the same brain region for different subjects. |
* Average the epochs within each acquisition runs: OK. * Average across runs: Not advised because the head of the subject may move between runs. * Average across subjects: Strongly discouraged because the shape of the heads vary but the sensors are fixed. One sensor does not correspond to the same brain region for different subjects. |
Line 105: | Line 104: |
* Note for Elekta/MaxFilter users: You can align all sessions to a reference session, this will allow direct channel comparisons within-subject. Not recommended across subjects. | * Note for Elekta/MaxFilter users: You can align all acquisition run to a reference run, this will allow direct channel comparisons and averaging across runs. Not recommended across subjects. |
Line 107: | Line 106: |
* Group averages: Use the same number of trials for all the sessions. === Statistics: Within subject === |
=== Statistics: Single subject === |
Line 112: | Line 110: |
* Use as many trials as possible for A and B: No need to have an equal number of trials. === Statistics: Between subjects === |
=== Statistics: Group analysis === |
Line 117: | Line 114: |
=== Statistics: Between-groups === * Not recommended with MEG recordings: do your analysis in source space. |
|
Line 121: | Line 115: |
=== Average: Within subject === 1. '''Sensor average''': Compute one sensor-level average''' '''per acquisition session and condition. <<BR>>Use the '''same number of trials''' for all the averages. |
=== Average: Single subject === 1. '''Sensor average''': Compute one sensor-level average''' '''per acquisition run and per condition. |
Line 124: | Line 118: |
1. '''Source average''': Average the source-level session averages to get one subject average. 1. '''Low-pass filter''' your evoked responses (optional). 1. '''Normalize '''the subject min-norm averages: Z-score vs. baseline (no absolute value).<<BR>>Justification: The amplitude range of current densities may vary between subjects because of anatomical or experimental differences. This normalization helps bringing the different subjects to the same range of values. |
1. '''Source average''': Average the source-level run averages to get one subject average. 1. '''Normalize '''the subject min-norm averages: Z-score wrt baseline (no absolute value).<<BR>>Justification: The amplitude range of current densities may vary between subjects because of anatomical or experimental differences. This normalization helps bringing the different subjects to the same range of values. 1. '''Low-pass filter''' your evoked responses (optional). <<BR>>If you filter your data, do it after the noise normalization so the variance is not underestimated. |
Line 129: | Line 124: |
=== Average: Between subjects === | === Average: Group analysis === |
Line 133: | Line 128: |
1. '''Smooth '''spatially the sources.<<BR>>Justification: The effects observed with constrained cortical maps may be artificially very focal, not overlapping very well between subjects. Smoothing the cortical maps may help the activated regions overlap between subjects. |
|
Line 137: | Line 130: |
1. '''Smooth '''spatially the source maps (optional). === Difference of averages: Within subject === 1. '''Sensor average''': Compute one sensor-level average per acquisition run and condition. 1. '''Sources''': Estimate sources for each average (constrained, no normalization). 1. '''Source average''': Average the source-level session averages to get one subject average. 1. '''Subject difference''': Compute the difference between conditions for each subject #i: (Ai-Bi) 1. '''Normalize '''the difference: Z-score wrt baseline (no absolute value): Z(Ai-Bi) 1. '''Low-pass filter''' the difference (optional) 1. '''Rectify''' the difference (apply an absolute value): |Z(Ai-Bi)| 1. '''Project '''the individual difference on a template (only when using the individual brains). 1. '''Group average''': Compute grand averages of all the subjects: avg(|Z(Ai-Bi)|). 1. '''Smooth '''spatially the source maps (optional). |
|
Line 138: | Line 146: |
1. '''Subject averages''': Compute within-subject averages for conditions A and B, as described above. 1. '''Subject difference''': Compute the difference between conditions for each subject (A-B). 1. '''Rectify''' the difference of source maps (apply an absolute value). 1. '''Project '''the individual difference on a template (only when using the individual brains). 1. '''Smooth '''spatially the sources. 1. '''Group average''': Compute grand averages of all the subjects: average_subjects(|Ai-Bi|). === Difference of averages: Between groups === 1. '''Subject averages''': Compute within-subject averages for conditions A and B, as described above. 1. '''Grand averages''': Compute the group-level averages for groups #1 and #2 as described in "Average: Between subjects" |
1. '''Grand averages''': Compute the averages for groups #1 and #2 as described in "Average: Group analysis" |
Line 151: | Line 151: |
=== Statistics: Within subject === 1. '''Sources''': Compute source maps for each trial (constrained, no normalization) 1. '''Statistics''': Compare all the trials of condition A vs all the trials of condition B.<<BR>>Use as many trials as possible for A and B: No need to have an equal number of trials. |
=== Statistics: Single subject === 1. '''Sources''': Compute source maps for each trial (constrained, no normalization). |
Line 157: | Line 156: |
* Indicates when and where there is a significant effect (but not in which direction). 1. '''|A| = |B|''' * '''Non-parametric''' tests only, '''independent''', test absolute values, two-tailed, FDR-corrected. * Indicates which condition corresponds to a stronger brain response (for a known effect). === Statistics: Between subjects === * '''|A - B| = 0''' : Parametric |
* Compute the difference of rectified averages: '''|avg(Ai)|-|avg(Bi)|''' * Combine the significance level (t-test) with the direction (difference): [[http://neuroimage.usc.edu/brainstorm/Tutorials/Statistics#Directionality:_Difference_of_absolute_values|See details]]. === Statistics: Group analysis, within subject === * '''A = B ''': Non-parametric 1. '''Rectified differences''': Proceed as described in ''Difference of averages: Between subjects'', but stop before the computation of the grand averages (#6) and compute a test instead.<<BR>>You obtain one |A<<HTML(<SUB>)>>i<<HTML(</SUB>)>>-B<<HTML(<SUB>)>>i<<HTML(</SUB>)>>| value for each subject, test these values against zero. 1. '''Non-parametric''' one-sample test, one-tailed, FDR-corrected. 1. Indicates when and where there is a significant effect (but not in which direction). * '''A = B''' : Parametric |
Line 167: | Line 169: |
* Use as many trials as possible for A and B: No need to have an equal number of trials. | |
Line 169: | Line 170: |
1. '''Low-pass filter''' your evoked responses (optional). | 1. '''Low-pass filter''' your evoked responses (optional). [NO! SHOULD BE DONE BEFORE, BUT WHEN ? => SPLIT ANALYSIS IN TWO: ERP OR FREQUENCY/RS] |
Line 177: | Line 178: |
* '''|A - B| = 0 ''': Non-parametric 1. '''Rectified differences''': Proceed as described in ''Difference of averages: Between subjects'', but stop before the computation of the grand averages (#6) and compute a test instead.<<BR>>You obtain one |A<<HTML(<SUB>)>>i<<HTML(</SUB>)>>-B<<HTML(<SUB>)>>i<<HTML(</SUB>)>>| value for each subject, test these values against zero. 1. '''Non-parametric''' one-sample test, one-tailed, FDR-corrected. 1. Indicates when and where there is a significant effect (but not in which direction). |
1. After identifying the significant effects, you may want to know which condition is stronger:<<BR>>Compute and plot power maps at the time points of interest: '''average(Ai^2^) - average(Bi^2^)''' |
Line 182: | Line 180: |
1. '''Rectified subject averages''': Proceed as described in ''Average: Between subjects'', but stop before the grand average (#5). You obtain two averages per subject (A<<HTML(<SUB>)>>i<<HTML(</SUB>)>> and B<<HTML(<SUB>)>>i<<HTML(</SUB>)>>). | 1. '''Rectified subject averages''': Proceed as described in ''Average: Group analysis'', but stop before the grand average (#5). You obtain two averages per subject (A<<HTML(<SUB>)>>i<<HTML(</SUB>)>> and B<<HTML(<SUB>)>>i<<HTML(</SUB>)>>). |
Line 186: | Line 184: |
=== Statistics: Between groups === | === Statistics: Group analysis, between subjects === |
Line 192: | Line 190: |
=== Design considerations === * Use within-subject designs whenever possible (i.e. collect two conditions A and B for each subject), then contrast data within subject before comparing data between subjects. * Such designs are not only statistically optimal, but also ameliorate the between-subject sign ambiguities as contrasts can be constructed within each subject. |
|
Line 199: | Line 193: |
=== Average: Within subject [???] === 1. '''Sensor average''': Compute one sensor-level average''' '''per acquisition session and condition. <<BR>>Use the '''same number of trials''' for all the averages. |
=== Average: Single subject [???] === 1. '''Sensor average''': Compute one sensor-level average''' '''per acquisition run and per condition. |
Line 202: | Line 196: |
1. '''Source average''': Average the source-level session averages to get one subject average. | 1. '''Source average''': Average the source-level run averages to get one subject average. |
Line 204: | Line 198: |
1. '''Normalize '''the subject min-norm averages: Z-score vs. baseline (no absolute value).<<BR>>'''[???]''' HOW TO NORMALIZE UNCONSTRAINED MAPS WRT BASELINE? === Average: Between subjects [???] === |
1. '''Normalize '''the subject min-norm averages: Z-score wrt baseline (no absolute value).<<BR>>'''[???]''' HOW TO NORMALIZE UNCONSTRAINED MAPS WRT BASELINE? === Average: Group analysis [???] === |
Line 213: | Line 207: |
=== Difference of averages: Between subjects [???] === | === Difference of averages: Within subject [???] === |
Line 220: | Line 214: |
=== Difference of averages: Between groups [???] === | === Difference of averages: Between subjects [???] === |
Line 222: | Line 216: |
1. '''Grand averages''': Compute the group-level averages for groups #1 and #2 as described in "Average: Between subjects" | 1. '''Grand averages''': Compute the group-level averages for groups #1 and #2 as described in "Average: Group analysis" |
Line 226: | Line 220: |
=== Statistics: Within subject [???] === | === Statistics: Single subject [???] === |
Line 228: | Line 222: |
1. '''Statistics''': Compare all the trials of condition A vs all the trials of condition B.<<BR>>Use as many trials as possible for A and B: No need to have an equal number of trials. | 1. '''Statistics''': Compare all the trials of condition A vs all the trials of condition B. |
Line 233: | Line 227: |
=== Statistics: Between subjects [???] === | === Statistics: Group analysis, within subject [???] === |
Line 238: | Line 232: |
* Use as many trials as possible for A and B: No need to have an equal number of trials. | |
Line 257: | Line 250: |
=== Statistics: Between groups [???] === | === Statistics: Group analysis, between subjects [???] === |
Line 264: | Line 257: |
=== Statistics: Within subjects === | === Statistics: Single subject === |
Line 269: | Line 262: |
=== Statistics: Between subjects === | === Statistics: Group analysis, within subject === |
Line 273: | Line 266: |
=== Average: Within subject === | === Average: Single subject === |
Line 281: | Line 274: |
=== Average: Between subjects [???] === | === Average: Group analysis [???] === |
Line 288: | Line 281: |
1. '''Group average''': Compute the averages for conditions A and B as in ''Average: Between subjects''. | 1. '''Group average''': Compute the averages for conditions A and B as in ''Average: Group analysis''. |
Line 291: | Line 284: |
=== Statistics: Within subject [???] === | === Statistics: Single subject [???] === |
Line 297: | Line 290: |
1. '''Statistics''': Compare all the trials of condition A vs all the trials of condition B.<<BR>>Use as many trials as possible for A and B: No need to have an equal number of trials. | 1. '''Statistics''': Compare all the trials of condition A vs all the trials of condition B. |
Line 303: | Line 296: |
=== Statistics: Between subjects [???] === | === Statistics: Group analysis, within subject [???] === |
Tutorial 27: Workflows
[TUTORIAL UNDER DEVELOPMENT: NOT READY FOR PUBLIC USE]
Authors: Francois Tadel, Elizabeth Bock, Dimitrios Pantazis, Richard Leahy, Sylvain Baillet
This page provides some general recommendations for your event-related analysis. It is not directly related with the auditory dataset, but provides guidelines you should consider for any MEG/EEG experiment.
We do not provide standard analysis pipelines for resting or steady state recordings yet, but we will add a few examples soon in the section Other analysis scenarios of the tutorials page.
Contents
What is your question?
The most appropriate analysis pipeline for your data depends on the question you are trying to answer. Before defining what are the main steps of your analysis, you should be able to state clearly the question you want to answer with your recordings.
What dimension?
- MEG/EEG recordings
- Cortical sources
- Individual anatomy or template
- Constrained (one value per vertex) or unconstrained (three values per grid point)
- Full cortex or regions of interests
- Frequency or time-frequency maps
What kind of experiment?
Single subject: Contrast two experimental conditions across trials, for one single subject.
- Files A: Single trials for condition A.
- Files B: Single trials for condition B.
Group analysis, within subject: Contrast two conditions A and B measured for each subject.
- Files A: Subject-level averages for condition A (all the subjects).
- Files B: Subject-level averages for condition B (all the subjects).
Group analysis, between subjects: Contrast two groups of subjects for one condition.
- Files A: Subject-level averages for group #1.
- Files B: Subject-level averages for group #2.
What level of precision?
- Difference of averages
- Statistically significant differences between conditions or groups
What statistical test?
A = B
Tests the null hypothesis H0:(A=B) against the alternative hypothesis H1:(A≠B)
Correct detection: Identify correctly where and when the conditions are different.
- Ambiguous sign: We cannot say which condition is stronger.
Power(A) = Power(B)
Tests the null hypothesis H0:(Power(A)=Power(B)) against the alternative hypothesis H1:(Power(A)≠Power(B))
- Incorrect detection: Not sensitive to the cases where A and B have opposite signs.
Meaningful sign: We can identify correctly which condition has a stronger response.
Power(x) = |x|2, where |x| represents the modulus of the values:
- Absolute value for scalar values (recordings, constrained sources, time-frequency)
- Norm of the three orientations for unconstrained sources.
Multiple comparisons: FDR is a good choice for correcting p-values for multiple comparisons.
- If nothing appears significant, don't start by blaming the method ("FDR doesn't work"). In the first place, it's probably because there is no clear difference between your sample sets or simply because your sample size is too small. For instance, with less than 10 subjects you cannot expect to observe very significant effects in your data.
If you cannot increase the sample size, consider reducing the number of multiple comparisons you perform (test only the average over a short time window, a few sensors or a region of interest) or using a cluster-based approach (see example).
Design considerations
- Use within-subject designs whenever possible (i.e. collect two conditions A and B for each subject), then contrast data at the subject level before comparing data between subjects.
- Such designs are not only statistically optimal, but also ameliorate the between-subject sign ambiguities as contrasts can be constructed within each subject.
Common pre-processing pipeline
Most event-related studies can start with the pipeline we've introduced in these tutorials.
- Import the anatomy of the subject (or use a template for all the subjects).
- Access the recordings:
- Link the continuous recordings to the Brainstorm database.
- Prepare the channel file: co-register sensors and MRI, edit type and name of channels.
- Edit the event markers: fix the delays of the triggers, mark additional events.
- Pre-process the signals:
- Evaluate the quality of the recordings with a power spectral density plot (PSD).
- Apply frequency filters (low-pass, high-pass, notch).
- Identify bad channels and bad segments.
- Correct for artifacts with SSP or ICA.
- Import the recordings in the database: epochs around some markers of interest.
How many trials to include?
Single subject: Include all the good trials (unless you have a very low number of trials).
See the averaging tutorial.Group analysis: Use a similar numbers of trials for all the subjects (no need to be strictly equal), reject the subjects for which we have much less good trials.
EEG recordings
Average
- Average the epochs across acquisition runs: OK.
- Average the epochs across subjects: OK.
- Electrodes are in the same standard positions for all the subjects (e.g. 10-20).
- Never use an absolute value for averaging or contrasting sensor-level data.
Statistics: Single subject
A = B
Parametric or non-parametric t-test, independent, two-tailed, FDR-corrected.
Statistics: Group analysis, within subject
A = B
First-level statistic: Average
- For each subject, compute the sensor average for conditions A and B.
Second-level statistic: t-test
Parametric or non-parametric t-test, paired, two-tailed, FDR-corrected.
Statistics: Group analysis, between subjects
A = B
First-level statistic: Average
- For each subject, compute the sensor average for the condition to test.
Second-level statistic: t-test
Parametric or non-parametric t-test, independent, two-tailed, FDR-corrected.
MEG recordings
Average
- Average the epochs within each acquisition runs: OK.
- Average across runs: Not advised because the head of the subject may move between runs.
- Average across subjects: Strongly discouraged because the shape of the heads vary but the sensors are fixed. One sensor does not correspond to the same brain region for different subjects.
- Tolerance for data exploration: Averaging across runs and subjects can be useful for identifying time points and sensors with interesting effects but should be avoided for formal analysis.
- Note for Elekta/MaxFilter users: You can align all acquisition run to a reference run, this will allow direct channel comparisons and averaging across runs. Not recommended across subjects.
- Never use an absolute value for averaging or contrasting sensor-level data.
Statistics: Single subject
A = B
Parametric or non-parametric t-test, independent, two-tailed, FDR-corrected.
Statistics: Group analysis
- Not recommended with MEG recordings: do your analysis in source space.
Constrained cortical sources
Average: Single subject
Sensor average: Compute one sensor-level average per acquisition run and per condition.
Sources: Estimate sources for each average (constrained, no normalization).
Source average: Average the source-level run averages to get one subject average.
Normalize the subject min-norm averages: Z-score wrt baseline (no absolute value).
Justification: The amplitude range of current densities may vary between subjects because of anatomical or experimental differences. This normalization helps bringing the different subjects to the same range of values.Low-pass filter your evoked responses (optional).
If you filter your data, do it after the noise normalization so the variance is not underestimated.Do not rectify the cortical maps, but display them as absolute values if needed.
Average: Group analysis
Subject averages: Compute within-subject averages for all the subjects, as described above.
Rectify the cortical maps (apply an absolute value).
Justification: Cortical maps have ambiguous signs across subjects: reconstructed sources depend heavily on the orientation of true cortical sources. Given the folding patterns of individual cortical anatomies vary considerably, cortical maps have subject-specific amplitude and sign ambiguities. This is true even if a standard anatomy is used for reconstruction.Project the individual source maps on a template (only when using the individual brains).
For more details, see tutorial: Group analysis: Subject coregistration.Group average: Compute grand averages of all the subjects.
Smooth spatially the source maps (optional).
Difference of averages: Within subject
Sensor average: Compute one sensor-level average per acquisition run and condition.
Sources: Estimate sources for each average (constrained, no normalization).
Source average: Average the source-level session averages to get one subject average.
Subject difference: Compute the difference between conditions for each subject #i: (Ai-Bi)
Normalize the difference: Z-score wrt baseline (no absolute value): Z(Ai-Bi)
Low-pass filter the difference (optional)
Rectify the difference (apply an absolute value): |Z(Ai-Bi)|
Project the individual difference on a template (only when using the individual brains).
Group average: Compute grand averages of all the subjects: avg(|Z(Ai-Bi)|).
Smooth spatially the source maps (optional).
Difference of averages: Between subjects
Grand averages: Compute the averages for groups #1 and #2 as described in "Average: Group analysis"
Difference: Compute the difference between group-level averages: avg(|A1|)-avg(|A2|)
Limitations: Because we rectify the source maps before computing the difference, we lose the ability to detect the differences between equal values of opposite signs. And we cannot keep the sign because we are averaging across subjects. Therefore, many effects are not detected correctly.
Statistics: Single subject
Sources: Compute source maps for each trial (constrained, no normalization).
A = B
Parametric or non-parametric t-test, independent, two-tailed, FDR-corrected.
Compute the difference of rectified averages: |avg(Ai)|-|avg(Bi)|
Combine the significance level (t-test) with the direction (difference): See details.
Statistics: Group analysis, within subject
A = B : Non-parametric
Rectified differences: Proceed as described in Difference of averages: Between subjects, but stop before the computation of the grand averages (#6) and compute a test instead.
You obtain one |Ai-Bi| value for each subject, test these values against zero.Non-parametric one-sample test, one-tailed, FDR-corrected.
- Indicates when and where there is a significant effect (but not in which direction).
A = B : Parametric
Sources: Compute source maps for each trial (constrained, no normalization)
First-level statistic: Compute a t-statistic for the source maps of all the trials A vs B.
Process2 "Test > Compute t-statistic": no absolute values, independant, equal variance.
With a high number of trials (n>30), t-values follow approximately a N(0,1) distribution.
Low-pass filter your evoked responses (optional). [NO! SHOULD BE DONE BEFORE, BUT WHEN ? => SPLIT ANALYSIS IN TWO: ERP OR FREQUENCY/RS]
Rectify the individual t-statistic (we're giving up the sign across subjects).
Project the individual t-statistic on a template (only when using the individual brains).
Smooth spatially the t-statistic maps.
Second-level statistic: Compute a one-sampled chi-square test based on the t-statistics.
Process1: "Test > Parametric test against zero": One-sampled Chi-square test
This tests for |A-B|=0 using a Chi-square test: X = sum(|ti|^2) ~ Chi2(Nsubj)
- Indicates when and where there is a significant effect (but not in which direction).
After identifying the significant effects, you may want to know which condition is stronger:
Compute and plot power maps at the time points of interest: average(Ai2) - average(Bi2)
|A| = |B|
Rectified subject averages: Proceed as described in Average: Group analysis, but stop before the grand average (#5). You obtain two averages per subject (Ai and Bi).
Non-parametric two-sample test, paired, test absolute values, two-tailed, FDR-corrected.
- Indicates which condition corresponds to a stronger brain response (for a known effect).
Statistics: Group analysis, between subjects
|A| = |B|
Subject averages: Compute within-subject averages for A and B, as described above.
You obtain two averages per subject (Ai and Bi).Non-parametric two-sample test, independent, test absolute values, two-tailed, FDR.
- Indicates which condition corresponds to a stronger brain response (for a known effect).
Unconstrained cortical sources
Three values for each grid point, corresponding to the three dipoles orientations (X,Y,Z).
We want only one statistic and one p-value per grid point in output.
Average: Single subject [???]
Sensor average: Compute one sensor-level average per acquisition run and per condition.
Sources: Estimate sources for each average (unconstrained, no normalization).
Source average: Average the source-level run averages to get one subject average.
Low-pass filter your evoked responses (optional).
Normalize the subject min-norm averages: Z-score wrt baseline (no absolute value).
[???] HOW TO NORMALIZE UNCONSTRAINED MAPS WRT BASELINE?
Average: Group analysis [???]
Subject averages: Compute within-subject averages for all the subjects, as described above.
Flatten the cortical map: compute the norm of the three orientations at each grid point.
Project the individual source maps on a template (only when using the individual brains).
Group average: Compute grand averages of all the subjects.
Difference of averages: Within subject [???]
Subject averages: Compute within-subject averages for conditions A and B, as described above.
Subject difference: Compute the difference between conditions for each subject (A-B).
Flatten the cortical map: compute the norm of the three orientations at each grid point.
Project the individual difference on a template.
Group average: Compute grand averages of all the subjects: average_subjects(|Ai-Bi|).
Difference of averages: Between subjects [???]
Subject averages: Compute within-subject averages for conditions A and B, as described above.
Grand averages: Compute the group-level averages for groups #1 and #2 as described in "Average: Group analysis"
Difference: Compute the difference between group-level averages: avg(|A1|)-avg(|A2|)
Limitations: Because we rectify the source maps before computing the difference, we lose the ability to detect the differences between equal values of opposite signs. And we cannot keep the sign because we are averaging across subjects. Therefore, many effects are not detected correctly.
Statistics: Single subject [???]
Sources: Compute source maps for each trial (unconstrained, no normalization)
Statistics: Compare all the trials of condition A vs all the trials of condition B.
|A| = |B|
Non-parametric tests only, independent, test norm, two-tailed, FDR-corrected.
- Indicates which condition corresponds to a stronger brain response (for a known effect).
Statistics: Group analysis, within subject [???]
|A - B| = 0 : Parametric
Sources: Compute source maps for each trial (unconstrained, no normalization)
First-level statistic: Compute a t-statistic for the source maps of all the trials A vs B.
Process2 "Test > Compute t-statistic": no absolute values, independant, equal variance.
With a high number of trials (n>30), t-values follow approximately a N(0,1) distribution.
Low-pass filter your evoked responses (optional).
Rectify the individual t-statistic (we're giving up the sign across subjects).
Project the individual t-statistic on a template (when using ).
Smooth spatially the t-statistic maps.
Second-level statistic: Compute a one-sampled Chi-square test based on the t-statistics.
Process1: "Test > Parametric test against zero": One-sampled Chi-square test
This tests for |A-B|=0 using a Chi-square test: X = sum(|ti|^2) ~ Chi2(Nsubj)
- Indicates when and where there is a significant effect (but not in which direction).
|A - B| = 0 : Non-parametric
Rectified differences: Proceed as described in Difference of averages: Between subjects, but stop before the computation of the grand averages (#6) and compute a test instead.
You obtain one |Ai-Bi| value for each subject, test these values against zero.Non-parametric one-sample test, one-tailed, FDR-corrected.
- Indicates when and where there is a significant effect (but not in which direction).
|A| = |B|
Subject averages: Compute within-subject averages for A and B, as described above.
You obtain two averages per subject (Ai and Bi).Non-parametric two-sample test, paired, test absolute values, two-tailed, FDR-corrected.
- Indicates which condition corresponds to a stronger brain response (for a known effect).
Statistics: Group analysis, between subjects [???]
|A| = |B|
Subject averages: Compute within-subject averages for A and B, as described above.
You obtain two averages per subject (Ai and Bi).Non-parametric two-sample test, independent, test absolute values, two-tailed, FDR.
- Indicates which condition corresponds to a stronger brain response (for a known effect).
Regions of interest (scouts) [???]
Statistics: Single subject
- Even within-subject cortical maps have sign ambiguities. MEG has limited spatial resolution and sources in opposing sulcal/gyral areas are reconstructed with inverted signs (constrained orientations only). Averaging activity in cortical regions of interest (scouts) would thus lead to signal cancelation. To avoid this brainstorm uses algorithms to manipulate the sign of individual sources before averaging within a cortical region. Unfortunately, this introduces an amplitude and sign ambiguity in the time course when summarizing scout activity.
As a result, perform any interesting within-subject average/contrast before computing an average scout time series.
- Then consider as constrained or unconstrained source maps.
Statistics: Group analysis, within subject
- Comparison of scout time series between subjects is tricky because there is no way to avoid sign ambiguity for different subjects. Thus there are no clear recommendations. Rectifying before comparing scout time series between subjects can be a good idea or not depending on different cases. Having a good understanding of the data (multiple inspections across channels/sources/subjects) can offer hints whether rectifying the scout time series is a good idea. Using unconstrained cortical maps to create the scout time series can ameliorate ambiguity concerns.
Time-frequency maps
Average: Single subject
Time-frequency maps: Compute time-frequency maps for each trial.
- Apply the default measure: magnitude for Hilbert transform, power for Morlet wavelets.
- Do not normalize the source maps: no Z-score or ERS/ERD.
- The values are all strictly positive, there is no sign ambiguity as for recordings or sources.
Average all the time-frequency maps together, for each condition separately.
- If you are averaging time-frequency maps computed on sensor-level data, the same limitations apply as for averaging sensor level data (see sections about MEG and EEG recordings above).
Average: Group analysis [???]
Subject averages: Compute within-subject averages for all the subjects, as described above.
Normalize: [???] Zscore, ERD/ERS, or FieldTrip?
Justification: The amplitude range of current densities may vary between subjects because of anatomical or experimental differences. This normalization helps bringing the different subjects to the same range of values.Group average: Compute grand averages of all the subjects.
Difference of averages
Group average: Compute the averages for conditions A and B as in Average: Group analysis.
Difference: Compute the difference between group-level averages: avg(A)-avg(B).
Statistics: Single subject [???]
Time-frequency maps: Compute time-frequency maps for each trial.
- Apply the default measure: magnitude for Hilbert transform, power for Morlet wavelets.
- Do not normalize the source maps: no Z-score or ERS/ERD.
- The values are all strictly positive, there is no sign ambiguity as for recordings or sources.
Statistics: Compare all the trials of condition A vs all the trials of condition B.
A = B [???]
Parametric or non-parametric t-test, independent, two-tailed, FDR-corrected. [???]
- Indicates both where there is a significant effect and what is its direction (no sign ambiguity).
Statistics: Group analysis, within subject [???]
A = B [???]
Subject averages: Compute within-subject averages for all subjects, as described above.
Parametric or non-parametric t-test, independent, two-tailed, FDR-corrected. [???]
- Indicates both where there is a significant effect and what is its direction (no sign ambiguity).
Workflow: Current problems [TODO]
The following inconsistencies are still present in the documentation. We are actively working on these issues and will update this tutorial as soon as we found solutions.
- [Group analysis] Unconstrained sources: How to normalize wrt baseline with a Z-score?
- Zscore(A): Normalizes each orientation separately, we cannot take the norm of it after.
- Zscore(|A|): Gets rid of the signs, forbids the option of a signed test H0:(Norm(A-B)=0)
See also the tutorial: Source estimation
- We need a way to normalize across the three orientations are the same time.
- [Single subject] Unconstrained sources: How do compare two conditions with multiple trials?
- |A|-|B|: Cannot detect correctly the difference.
- |A-B|: Cannot be computed because the trials are not paired.
- We need a test for the three orientations at the same time.
- [Group analysis] Unconstrained sources:Can we use parametric tests?
- Time-frequency maps:
- Can we use parametric tests for (A-B=0) ? Does (A-B) ~ normal distribution?
- Do we need to normalize the time-frequency maps when testing across subjects?
- If yes, how to normalize the time-frequency maps? (Z-score, ERS/ERD, divide by std)