Statistical testing of a second-level analysis#
Perform a one-sample t-test on a bunch of images (a.k.a. second-level analysis in fMRI) and threshold the resulting statistical map.
This example is based on the so-called localizer dataset. It shows activation related to a mental computation task, as opposed to narrative sentence reading/listening.
Prepare some images for a simple t test#
This is a simple manually performed second level analysis.
Get the set of individual statstical maps (contrast estimates)
Perform the second level analysis#
First, we define a design matrix for the model. As the model is trivial (one-sample test), the design matrix is just one column with ones.
Next, we specify and estimate the model.
Compute the only possible contrast: the one-sample test. Since there is only one possible contrast, we don’t need to specify it in detail.
Threshold the resulting map without multiple comparisons correction, abs(z) > 3.29 (equivalent to p < 0.001), cluster size > 10 voxels.
<nibabel.nifti1.Nifti1Image object at 0x7fd0e94f20a0>
This is equivalent to thresholding a z-statistic image with a false positive rate < .001, cluster size > 10 voxels.
Now use FDR <.05 (False Discovery Rate) and no cluster-level threshold.
The FDR=.05 threshold is 2.37
Now use FWER <.05 (Family-Wise Error Rate) and no cluster-level threshold. As the data has not been intensively smoothed, we can use a simple Bonferroni correction.
The p<.05 Bonferroni-corrected threshold is 4.88
Visualize the results#
First, the unthresholded map.
Second, the p<.001 uncorrected-thresholded map (with only clusters > 10 voxels).
<nilearn.plotting.displays._slicers.OrthoSlicer object at 0x7fd0ea864fd0>
Third, the fdr-thresholded map.
<nilearn.plotting.displays._slicers.OrthoSlicer object at 0x7fd0eb36f640>
Fourth, the Bonferroni-thresholded map.
<nilearn.plotting.displays._slicers.OrthoSlicer object at 0x7fd0d9e4c910>
These different thresholds correspond to different statistical guarantees: in the FWER-corrected image there is only a probability smaller than .05 of observing any false positive voxel. In the FDR-corrected image, 5% of the voxels found are likely to be false positive. In the uncorrected image, one expects a few tens of false positive voxels.
Total running time of the script: (0 minutes 12.442 seconds)
Estimated memory usage: 9 MB