nimare.meta.ibma.VarianceBasedLikelihood
- class VarianceBasedLikelihood(method='ml', **kwargs)[source]
Bases:
IBMAEstimatorA likelihood-based meta-analysis method for estimates with known variances.
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” output.
Changed in version 0.0.8:
[FIX] Remove single-dimensional entries of each array of returns (
dict).
Added 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) [1][2].
- 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.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 aMetaResultobject 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.
“dof”
Degrees of freedom map from one-sample test.
The ML and REML solutions are obtained via SciPy’s scalar function minimizer (
scipy.optimize.minimize()). Parameters tominimize()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.
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=Falsewill instead run tha analysis in bags of voxels that have a valid value across the same studies.References
See also
pymare.estimators.VarianceBasedLikelihoodEstimatorThe PyMARE estimator called by this class.
Methods
fit(dataset[, drop_invalid])Fit Estimator to a collection.
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 a collection.
- Parameters:
- Returns:
Result of Estimator fitting. Subclasses may return a
MetaResultsubclass.- Return type:
- Variables:
inputs (
dict) – Inputs used in _fit.warning:: (..) – Support for
Datasetinputs is deprecated and will be removed in a future release. PreferStudyset.and (The fit method is a light wrapper that runs input validation)
individual (preprocessing before fitting the actual model. Estimators')
should ("fitting" methods are implemented as _fit, although users)
fit. (call)
- classmethod load(filename, compressed=True)[source]
Load a pickled class instance from file.
- Parameters:
- Returns:
obj – Loaded class object.
- Return type:
class object
- 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