nimare.correct.FDRCorrector

class FDRCorrector(method='indep', alpha=0.05, **kwargs)[source]

Bases: Corrector

Perform false discovery rate correction on a meta-analysis.

Parameters:
  • method (str, default=’indep’) – The FDR correction to use. Either ‘indep’ (for independent or positively correlated values) or ‘negcorr’ (for general or negatively correlated tests). Default is ‘indep’.

  • alpha (float, default=0.05) – The FDR correction rate to use. Default is 0.05.

Notes

This corrector supports a small number of internal FDR correction methods, but can also use special methods implemented within individual Estimators. To determine what methods are available for the Estimator you’re using, use inspect(). Estimators have special methods following the naming convention correct_[correction-type]_[method] (e.g., correct_fdr_indep).

Methods

correct_fdr_indep(p)

Perform Benjamini-Hochberg FDR correction.

correct_fdr_negcorr(p)

Perform Benjamini-Yekutieli FDR correction.

get_params([deep])

Get parameters for this estimator.

inspect(result)

Identify valid 'method' values for a MetaResult object.

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.

transform(result)

Apply the multiple comparisons correction method to a MetaResult object.

correct_fdr_indep(p)[source]

Perform Benjamini-Hochberg FDR correction.

This correction is based on the one described in Benjamini and Hochberg[1]. This method is not universally appropriate. It works well for tests that are independent, or which are positively correlated.

Warning

Do not call this method directly. Call transform() with method='indep' instead.

New in version 0.0.12.

Parameters:

p (numpy.ndarray) – A 1D array of p values.

Returns:

  • p_corr (numpy.ndarray) – A 1D array of adjusted p values.

  • tables (dict) – A dictionary of DataFrames with summary information from the correction. This correction method does not produce any tables, so it will be an empty dict.

  • description_ (str) – A description of the correction procedure.

References

See also

pymare.stats.fdr

correct_fdr_negcorr(p)[source]

Perform Benjamini-Yekutieli FDR correction.

This correction is based on the one described in Benjamini and Yekutieli[2]. It is most appropriate for tests that are negatively correlated.

Warning

Do not call this method directly. Call transform() with method='negcorr' instead.

New in version 0.0.12.

Parameters:

p (numpy.ndarray) – A 1D array of p values.

Returns:

  • p_corr (numpy.ndarray) – A 1D array of adjusted p values.

  • tables (dict) – A dictionary of DataFrames with summary information from the correction. This correction method does not produce any tables, so it will be an empty dict.

  • description_ (str) – A description of the correction procedure.

Notes

The difference between the Benjamini-Yekutieli and Benjamini-Hochberg methods is that Benjamini-Yekutieli includes an additional term, c(m). When the tests are independent or positively correlated, c(m) is 1 (and thus has no effect). In cases of other forms of dependence, c(m) has an effect.

References

See also

pymare.stats.fdr

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 inspect(result)[source]

Identify valid ‘method’ values for a MetaResult object.

In addition to returning a list of valid values, this method will also print out those values, divided by the value type (Estimator or generic).

Parameters:

result (MetaResult) – Object for which valid correction methods (i.e., ‘method’ values) will be identified.

Returns:

List of valid ‘method’ values for the Corrector+Estimator combination, including both non-specific methods and Estimator-specific ones.

Return type:

list

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

transform(result)[source]

Apply the multiple comparisons correction method to a MetaResult object.

Parameters:

result (MetaResult) – MetaResult generated by an Estimator to be corrected for multiple comparisons.

Returns:

result – MetaResult with new corrected maps, tables, and description added.

Return type:

MetaResult

Examples using nimare.correct.FDRCorrector

The Corrector class

The Corrector class

Simulate data for coordinate based meta-analysis

Simulate data for coordinate based meta-analysis

Coordinate-based meta-regression algorithms

Coordinate-based meta-regression algorithms