Meta-analysis: Language Models

Meta-analysis: Language Models

import json
from meta import analyze_collection
%matplotlib inline
ERROR:duecredit:Failed to import duecredit due to No module named 'duecredit'

To investigate the effect of lexical frequency on VWFA (Yarkoni et al., 2018) we fit, for each dataset, a model that includes the following regressors:

  • Lexical frequency (log10), from the SubtlexUS database (subtlexusfrequency_Lg10WF);

  • A binary regressor coding for the presence of speech (speech);

  • Phonological neighboorhood distance, from the MALD dataset (massiveauditorylexicaldecision_PhonLev);

  • Number of characters (text_length);

  • Number of syllables, from MALD (massiveauditorylexicaldecision_NumSylls);

  • Number of phones, from MALD (massiveauditorylexicaldecision_NumPhones);

  • Duration, from MALD (massiveauditorylexicaldecision_Duration);

  • Concreteness, from the SubtlexUS (concreteness_Conc.M)

Models also include a standard set of covariates.
Let’s first import the collection.

json_data = json.load(open('../analyses/models/lexical_variables.json'))

We now run and visualize the results of image-based meta-analyses for the effect of all regressors included in the model.

ma_maps = analyze_collection(
    json_data['subtlexusfrequency_Lg10WF+speech+massiveauditorylexicaldecision_PhonLev+text_length+massiveauditorylexicaldecision_NumSylls+massiveauditorylexicaldecision_NumPhones+massiveauditorylexicaldecision_Duration+concreteness_Conc.M'],
)
INFO:nimare.utils:Shared path detected: '/home/alejandro/repos/neuroscout-paper/meta/images/subtlexusfrequencyLg10Wf_speech_massiveauditorylexicaldecisionPhonlev_textLength_massiveauditorylexicaldecisionNumsylls_massiveauditorylexicaldecisionNumphones_massiveauditorylexicaldecisionDuration_concretenessConc.M/'
WARNING:nimare.base:Masking out 8186 additional voxels. The updated masker is available in the Estimator.masker attribute.
meta-analyzing 33 for concretenessConc.M
INFO:nimare.utils:Shared path detected: '/home/alejandro/repos/neuroscout-paper/meta/images/subtlexusfrequencyLg10Wf_speech_massiveauditorylexicaldecisionPhonlev_textLength_massiveauditorylexicaldecisionNumsylls_massiveauditorylexicaldecisionNumphones_massiveauditorylexicaldecisionDuration_concretenessConc.M/'
WARNING:nimare.base:Masking out 8186 additional voxels. The updated masker is available in the Estimator.masker attribute.
meta-analyzing 33 for massiveauditorylexicaldecisionDuration
INFO:nimare.utils:Shared path detected: '/home/alejandro/repos/neuroscout-paper/meta/images/subtlexusfrequencyLg10Wf_speech_massiveauditorylexicaldecisionPhonlev_textLength_massiveauditorylexicaldecisionNumsylls_massiveauditorylexicaldecisionNumphones_massiveauditorylexicaldecisionDuration_concretenessConc.M/'
WARNING:nimare.base:Masking out 8186 additional voxels. The updated masker is available in the Estimator.masker attribute.
meta-analyzing 33 for massiveauditorylexicaldecisionNumphones
INFO:nimare.utils:Shared path detected: '/home/alejandro/repos/neuroscout-paper/meta/images/subtlexusfrequencyLg10Wf_speech_massiveauditorylexicaldecisionPhonlev_textLength_massiveauditorylexicaldecisionNumsylls_massiveauditorylexicaldecisionNumphones_massiveauditorylexicaldecisionDuration_concretenessConc.M/'
WARNING:nimare.base:Masking out 8186 additional voxels. The updated masker is available in the Estimator.masker attribute.
meta-analyzing 33 for massiveauditorylexicaldecisionNumsylls
INFO:nimare.utils:Shared path detected: '/home/alejandro/repos/neuroscout-paper/meta/images/subtlexusfrequencyLg10Wf_speech_massiveauditorylexicaldecisionPhonlev_textLength_massiveauditorylexicaldecisionNumsylls_massiveauditorylexicaldecisionNumphones_massiveauditorylexicaldecisionDuration_concretenessConc.M/'
WARNING:nimare.base:Masking out 8186 additional voxels. The updated masker is available in the Estimator.masker attribute.
meta-analyzing 33 for massiveauditorylexicaldecisionPhonlev
INFO:nimare.utils:Shared path detected: '/home/alejandro/repos/neuroscout-paper/meta/images/subtlexusfrequencyLg10Wf_speech_massiveauditorylexicaldecisionPhonlev_textLength_massiveauditorylexicaldecisionNumsylls_massiveauditorylexicaldecisionNumphones_massiveauditorylexicaldecisionDuration_concretenessConc.M/'
WARNING:nimare.base:Masking out 8186 additional voxels. The updated masker is available in the Estimator.masker attribute.
meta-analyzing 33 for speech
INFO:nimare.utils:Shared path detected: '/home/alejandro/repos/neuroscout-paper/meta/images/subtlexusfrequencyLg10Wf_speech_massiveauditorylexicaldecisionPhonlev_textLength_massiveauditorylexicaldecisionNumsylls_massiveauditorylexicaldecisionNumphones_massiveauditorylexicaldecisionDuration_concretenessConc.M/'
WARNING:nimare.base:Masking out 8186 additional voxels. The updated masker is available in the Estimator.masker attribute.
meta-analyzing 33 for subtlexusfrequencyLg10Wf
INFO:nimare.utils:Shared path detected: '/home/alejandro/repos/neuroscout-paper/meta/images/subtlexusfrequencyLg10Wf_speech_massiveauditorylexicaldecisionPhonlev_textLength_massiveauditorylexicaldecisionNumsylls_massiveauditorylexicaldecisionNumphones_massiveauditorylexicaldecisionDuration_concretenessConc.M/'
WARNING:nimare.base:Masking out 8186 additional voxels. The updated masker is available in the Estimator.masker attribute.
meta-analyzing 33 for textLength
../_images/3-language_features_meta_5_16.png ../_images/3-language_features_meta_5_17.png ../_images/3-language_features_meta_5_18.png ../_images/3-language_features_meta_5_19.png ../_images/3-language_features_meta_5_20.png ../_images/3-language_features_meta_5_21.png ../_images/3-language_features_meta_5_22.png ../_images/3-language_features_meta_5_23.png

In Figure 6, we plot meta-analytic maps for concreteness and frequency side to side, which display effects of both concreteness (positive) and frequency (negative) in VWFA.

from nilearn import plotting as niplt
import matplotlib.pyplot as plt
concreteness = ma_maps[0]
freq = ma_maps[6]
fig, axes = plt.subplots(1, 2, figsize=(15, 5))
plot_kwargs=dict(vmax=11, threshold=3.29, cut_coords=[-42, -57, -15], annotate=False, colorbar=False)
niplt.plot_stat_map(concreteness, axes=axes[0], title='concreteness', **plot_kwargs)
niplt.plot_stat_map(freq, axes=axes[1], title='frequency', **plot_kwargs)
<nilearn.plotting.displays.OrthoSlicer at 0x7fb9b8d94828>
../_images/3-language_features_meta_8_1.png