nimare.meta.ibma.VarianceBasedLikelihood

class VarianceBasedLikelihood(method='ml', **kwargs)[source]

Bases: IBMAEstimator

A likelihood-based meta-analysis method for estimates with known variances.

Changed in version 0.0.12: Add “se” output.

Changed in version 0.0.8:

  • [FIX] Remove single-dimensional entries of each array of returns (dict).

New in version 0.0.4.

Iteratively estimates the between-subject variance tau^2 and fixed effect coefficients using the specified likelihood-based estimator (ML or REML) 12.

Parameters

method ({'ml', 'reml'}, optional) –

The estimation method to use. The available options are

”ml” (default)

Maximum likelihood

”reml”

Restricted maximum likelihood

Notes

Requires beta and varcope images.

fit() produces a MetaResult object with the following maps:

“z”

Z-statistic map from one-sample test.

“p”

P-value map from one-sample test.

“est”

Fixed effects estimate for intercept test.

“se”

Standard error of fixed effects estimate.

“tau2”

Estimated between-study variance.

The ML and REML solutions are obtained via SciPy’s scalar function minimizer (scipy.optimize.minimize()). Parameters to minimize() can be passed in as keyword arguments.

Warning

Likelihood-based estimators are not parallelized across voxels, so this method should not be used on full brains, unless you can submit your code to a job scheduler.

Masking approaches which average across voxels (e.g., NiftiLabelsMaskers) will likely result in biased results. The extent of this bias is currently unknown.

All image-based meta-analysis estimators adopt an aggressive masking strategy, in which any voxels with a value of zero in any of the input maps will be removed from the analysis.

References

1

Rebecca DerSimonian and Nan Laird. Meta-analysis in clinical trials. Controlled clinical trials, 7(3):177–188, 1986.

2

Ioannis Kosmidis, Annamaria Guolo, and Cristiano Varin. Improving the accuracy of likelihood-based inference in meta-analysis and meta-regression. Biometrika, 104(2):489–496, 2017. URL: https://doi.org/10.1093/biomet/asx001, doi:10.1093/biomet/asx001.

See also

pymare.estimators.VarianceBasedLikelihoodEstimator

The PyMARE estimator called by this class.

Methods

fit(dataset[, drop_invalid])

Fit Estimator to Dataset.

get_params([deep])

Get parameters for this estimator.

load(filename[, compressed])

Load a pickled class instance from file.

save(filename[, compress])

Pickle the class instance to the provided file.

set_params(**params)

Set the parameters of this estimator.

fit(dataset, drop_invalid=True)[source]

Fit Estimator to Dataset.

Parameters
  • dataset (Dataset) – Dataset object to analyze.

  • drop_invalid (bool, optional) – Whether to automatically ignore any studies without the required data or not. Default is False.

Returns

Results of Estimator fitting.

Return type

MetaResult

Variables

inputs (dict) – Inputs used in _fit.

Notes

The fit method is a light wrapper that runs input validation and preprocessing before fitting the actual model. Estimators’ individual “fitting” methods are implemented as _fit, although users should call fit.

get_params(deep=True)[source]

Get parameters for this estimator.

Parameters

deep (bool, optional) – If True, will return the parameters for this estimator and contained subobjects that are estimators.

Returns

params – Parameter names mapped to their values.

Return type

dict

classmethod load(filename, compressed=True)[source]

Load a pickled class instance from file.

Parameters
  • filename (str) – Name of file containing object.

  • compressed (bool, optional) – If True, the file is assumed to be compressed and gzip will be used to load it. Otherwise, it will assume that the file is not compressed. Default = True.

Returns

obj – Loaded class object.

Return type

class object

save(filename, compress=True)[source]

Pickle the class instance to the provided file.

Parameters
  • filename (str) – File to which object will be saved.

  • compress (bool, optional) – If True, the file will be compressed with gzip. Otherwise, the uncompressed version will be saved. Default = True.

set_params(**params)[source]

Set the parameters of this estimator.

The method works on simple estimators as well as on nested objects (such as pipelines). The latter have parameters of the form <component>__<parameter> so that it’s possible to update each component of a nested object.

Return type

self