nimare.meta.ibma.WeightedLeastSquares

class WeightedLeastSquares(tau2=0, **kwargs)[source]

Bases: IBMAEstimator

Weighted least-squares meta-regression.

Changed in version 0.2.1:

  • New parameter: aggressive_mask, to control whether to use an aggressive mask.

Changed in version 0.0.12:

  • Add “se” to outputs.

Changed in version 0.0.8:

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

New in version 0.0.4.

Provides the weighted least-squares estimate of the fixed effects given known/assumed between-study variance tau^2. When tau^2 = 0 (default), the model is the standard inverse-weighted fixed-effects meta-regression.

This method was described in Brockwell and Gordon[1].

Parameters:
  • aggressive_mask (bool, optional) – Voxels with a value of zero of NaN in any of the input maps will be removed from the analysis. If False, all voxels are included by running a separate analysis on bags of voxels that belong that have a valid value across the same studies. Default is True.

  • tau2 (float or 1D numpy.ndarray, optional) – Assumed/known value of tau^2. Must be >= 0. Default is 0.

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.

“dof”

Degrees of freedom map from one-sample test.

Warning

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

By default, 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. Setting aggressive_mask=False will instead run tha analysis in bags of voxels that have a valid value across the same studies.

References

See also

pymare.estimators.WeightedLeastSquares

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, default=True) – 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, default=True) – 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