Source code for teneva.stat
"""Package teneva, module stat: helper functions for processing statistics.
This module contains the helper functions for processing statistics, including
computation of the CDF function and its confidence bounds.
"""
import numpy as np
[docs]def cdf_confidence(x, alpha=0.05):
"""Construct a Dvoretzky-Kiefer-Wolfowitz confidence band for the CDF.
Args:
x (np.ndarray): the empirical distribution in the form of 1D np.ndarray
of length m.
alpha (float): alpha for the (1 - alpha) confidence band.
Returns:
(np.ndarray, np.ndarray): CDF lower and upper bounds in the form of 1D
np.ndarray of the length m.
"""
eps = np.sqrt(np.log(2. / alpha) / (2 * len(x)))
return np.clip(x - eps, 0, 1), np.clip(x + eps, 0, 1)
[docs]def cdf_getter(x):
"""Build the getter for CDF.
Args:
x (list or np.ndarray): one-dimensional points.
Returns:
function: the function that computes CDF values. Its input may be one
point (float) or a set of points (1D np.ndarray). The output
(corresponding CDF value/values) will have the same type.
"""
x = np.array(x, copy=True)
x.sort()
y = np.linspace(1./len(x), 1, len(x))
x = np.r_[-np.inf, x]
y = np.r_[0, y]
def cdf(z):
return y[np.searchsorted(x, z, 'right') - 1]
return cdf