class_docstr: Estimate a Gaussian distribution for the null Z-scores.
  
  The observed Z-scores consist of both null and non-null values.
  The fitted distribution of null Z-scores is Gaussian, but may have
  non-zero mean and/or non-unit scale.
  
  Parameters
  ----------
  zscores : array_like
      The observed Z-scores.
  null_lb : float
      Z-scores between `null_lb` and `null_ub` are all considered to be
      true null hypotheses.
  null_ub : float
      See `null_lb`.
  estimate_mean : bool
      If True, estimate the mean of the distribution.  If False, the
      mean is fixed at zero.
  estimate_scale : bool
      If True, estimate the scale of the distribution.  If False, the
      scale parameter is fixed at 1.
  estimate_null_proportion : bool
      If True, estimate the proportion of true null hypotheses (i.e.
      the proportion of z-scores with expected value zero).  If False,
      this parameter is fixed at 1.
  
  Attributes
  ----------
  mean : float
      The estimated mean of the empirical null distribution
  sd : float
      The estimated standard deviation of the empirical null distribution
  null_proportion : float
      The estimated proportion of true null hypotheses among all hypotheses
  
  References
  ----------
  B Efron (2008).  Microarrays, Empirical Bayes, and the Two-Groups
  Model.  Statistical Science 23:1, 1-22.
  
  Notes
  -----
  See also:
  
  http://nipy.org/nipy/labs/enn.html#nipy.algorithms.statistics.empirical_pvalue.NormalEmpiricalNull.fdr
docstr: Evaluates the fitted empirical null Z-score density.
  
  Parameters
  ----------
  zscores : scalar or array_like
      The point or points at which the density is to be
      evaluated.
  
  Returns
  -------
  The empirical null Z-score density evaluated at the given
  points.
code: def pdf(self, zscores):
      """
      Evaluates the fitted empirical null Z-score density.
  
      Parameters
      ----------
      zscores : scalar or array_like
          The point or points at which the density is to be
          evaluated.
  
      Returns
      -------
      The empirical null Z-score density evaluated at the given
      points.
      """
  
      zval = (zscores - self.mean) / self.sd
      return np.exp(
          -0.5 * zval**2 - np.log(self.sd) - 0.5 * np.log(2 * np.pi)
      )
  
file_path: statsmodels/statsmodels/stats/multitest.py
imports: import numpy
  from statsmodels.stats._knockoff import RegressionFDR
label_desc: Use image node_id 2 for calling the NullDistribution obj's underlying member method code with example usage: obj.pdf(zscores) and returns: np