statsmodels.stats.multitest.local_fdr(zscores, null_proportion=1.0, null_pdf=None, deg=7, nbins=30)[source]

Calculate local FDR values for a list of Z-scores.


zscores : array-like

A vector of Z-scores

null_proportion : float

The assumed proportion of true null hypotheses

null_pdf : function mapping reals to positive reals

The density of null Z-scores; if None, use standard normal

deg : integer

The maximum exponent in the polynomial expansion of the density of non-null Z-scores

nbins : integer

The number of bins for estimating the marginal density of Z-scores.


fdr : array-like

A vector of FDR values


B Efron (2008). Microarrays, Empirical Bayes, and the Two-Groups Model. Statistical Science 23:1, 1-22.


Basic use (the null Z-scores are taken to be standard normal):

>>> from statsmodels.stats.multitest import local_fdr
>>> import numpy as np
>>> zscores = np.random.randn(30)
>>> fdr = local_fdr(zscores)

Use a Gaussian null distribution estimated from the data:

>>> null = EmpiricalNull(zscores)
>>> fdr = local_fdr(zscores, null_pdf=null.pdf)