# 8.3. Second level models#

## 8.3.1. Fitting a second level model#

As with first level models, a design matrix needs to be defined before fitting a second level model. Again, similar to first level models, Nilearn provides a function `nilearn.glm.second_level.make_second_level_design_matrix` for this purpose. Once the design matrix has been setup, it can be visualized using the same function as before, `nilearn.plotting.plot_design_matrix`.

To fit the second level model, the tools to use are within the class `nilearn.glm.second_level.SecondLevelModel`. Specifically, the function that fits the model is `nilearn.glm.second_level.SecondLevelModel.fit`.

Some examples to get you going with second level models are provided below::

## 8.3.2. Thresholding statistical maps#

Nilearn’s statistical plotting functions provide simple thresholding functionality. For instance, functions like `nilearn.plotting.plot_stat_map` or `nilearn.plotting.plot_glass_brain` have an argument called `threshold` that, when set, will only show voxels with a value that is over the threshold provided.

Thresholding examples are available here: Second-level fMRI model: one sample test and Statistical testing of a second-level analysis.

## 8.3.3. Multiple comparisons correction#

As discussed in the Multiple Comparisons section of the introduction, the issue of multiple comparisons is important to address with statistical analysis of fMRI data. Nilearn provides parametric and non-parametric tools to address this issue.

Refer to the example Statistical testing of a second-level analysis for a guide to applying FPR, FDR, and FWER corrections. These corrections are applied using the `nilearn.glm.threshold_stats_img` function.

You can additionally employ a non-parametric correction procedure using either `nilearn.glm.second_level.non_parametric_inference` or `nilearn.mass_univariate.permuted_ols`. Refer to the example Second-level fMRI model: one sample test for a practical use of this function.

Within an activated cluster, not all voxels represent true activation. To estimate true positives within a cluster, Nilearn provides the `nilearn.glm.cluster_level_inference` function. An example with usage information is available here: Second-level fMRI model: true positive proportion in clusters.

## 8.3.4. Voxel based morphometry#

The `nilearn.glm.second_level.SecondLevelModel` and its associated functions can also be used to perform voxel based morphometry. An example using the OASIS dataset to identify the relationship between aging, sex and gray matter density is available here Voxel-Based Morphometry on OASIS dataset.