The nipy.neurospin.utils.emp_null module contains a class that fits a gaussian model to the central part of an histogram, following Schwartzman et al, 2009. This is typically necessary to estimate a fdr when one is not certain that the data behaves as a standard normal under H_0.
The ENN class learns its null distribution on the data provided at initialisation. Two different methods can be used to set a threshold from the null distribution: the ENN.threshold() method returns the threshold for a given false discovery rate, and thus accounts for multiple comparisons with the given dataset; the ENN.uncorrected_threshold() returns the threshold for a given uncorrected p-value, and as such does not account for multiple comparisons.
If we use the empirical normal null estimator on a two gaussian mixture distribution, with a central gaussian, and a wide one, it uses the central distribution as a null hypothesis, and returns the threshold followingr which the data can be claimed to belong to the wide gaussian:
[source code, hires.png, pdf]
The threshold evaluated with the ENN.threshold() method is around 2.8 (using the default p-value of 0.05). The ENN.uncorrected_threshold() return, for the same p-value, a threshold of 1.9. It is necessary to use a higher p-value with uncorrected comparisons.
Class to compute the empirical null normal fit to the data.
The data which is used to estimate the FDR, assuming a gaussian null from Schwartzmann et al., NeuroImage 44 (2009) 71–82
Methods
fdr | |
fdrcurve | |
learn | |
plot | |
threshold | |
uncorrected_threshold |
Initiate an empirical null normal object.
Parameters : | x : 1D ndarray
|
---|
given a threshold theta, find the estimated fdr
Returns the fdr associated with any point of self.x
Estimate the proportion, mean and variance of a gaussian distribution for a fraction of the data
Parameters : | left : float, optional
right : float, optional
|
---|
Notes
plot the histogram of x
Parameters : | efp : float, optional
alpha : float, optional
bar=1 : bool, optional mpaxes=None: if not None, handle to an axes where the fig. : will be drawn. Avoids creating unnecessarily new figures. : |
---|
Compute the threshold correponding to an alpha-level fdr for x
Parameters : | alpha : float, optional
verbose : boolean, optional
|
---|
Compute the threshold correponding to a specificity alpha for x
Parameters : | alpha : float, optional
verbose : boolean, optional
|
---|
Reference: Schwartzmann et al., NeuroImage 44 (2009) 71–82