/// <summary> /// stimates the tau-th quantile from the provided samples. /// The tau-th quantile is the data value where the cumulative distribution /// function crosses tau. The quantile definition can be specificed to be compatible /// with an existing system. /// </summary> /// <param name="data">The data sample sequence.</param> /// <param name="tau">Quantile selector, between 0.0 and 1.0 (inclusive).</param> /// <param name="definition">Quantile definition, to choose what product/definition it should be consistent with</param> public static double QuantileCustom(this IEnumerable <double?> data, double tau, QuantileDefinition definition) { if (data == null) { throw new ArgumentNullException("data"); } var array = data.Where(d => d.HasValue).Select(d => d.Value).ToArray(); return(ArrayStatistics.QuantileCustomInplace(array, tau, definition)); }
/// <summary> /// Estimates the empirical inverse CDF at tau from the provided samples. /// </summary> /// <param name="data">The data sample sequence.</param> /// <param name="tau">Quantile selector, between 0.0 and 1.0 (inclusive).</param> public static double InverseCDF(this IEnumerable <double> data, double tau) { if (data == null) { throw new ArgumentNullException("data"); } var array = data.ToArray(); return(ArrayStatistics.QuantileCustomInplace(array, tau, QuantileDefinition.InverseCDF)); }
/// <summary> /// Estimates the tau-th quantile from the provided samples. /// The tau-th quantile is the data value where the cumulative distribution /// function crosses tau. The quantile definition can be specificed to be compatible /// with an existing system. /// </summary> /// <param name="data">The data sample sequence.</param> /// <param name="tau">Quantile selector, between 0.0 and 1.0 (inclusive).</param> /// <param name="definition">Quantile definition, to choose what product/definition it should be consistent with</param> public static double QuantileCustom(this IEnumerable <double?> data, double tau, QuantileDefinition definition) { var array = data.Where(d => d.HasValue).Select(d => d.Value).ToArray(); return(ArrayStatistics.QuantileCustomInplace(array, tau, definition)); }
/// <summary> /// Estimates the empirical inverse CDF at tau from the provided samples. /// </summary> /// <param name="data">The data sample sequence.</param> /// <param name="tau">Quantile selector, between 0.0 and 1.0 (inclusive).</param> public static double EmpiricalInvCDF(this IEnumerable <double> data, double tau) { var array = data.ToArray(); return(ArrayStatistics.QuantileCustomInplace(array, tau, QuantileDefinition.EmpiricalInvCDF)); }
/// <summary> /// Estimates the tau-th quantile from the provided samples. /// The tau-th quantile is the data value where the cumulative distribution /// function crosses tau. The quantile definition can be specificed to be compatible /// with an existing system. /// </summary> /// <param name="data">The data sample sequence.</param> /// <param name="tau">Quantile selector, between 0.0 and 1.0 (inclusive).</param> /// <param name="definition">Quantile definition, to choose what product/definition it should be consistent with</param> public static double QuantileCustom(this IEnumerable <double> data, double tau, QuantileDefinition definition) { var array = data.ToArray(); return(ArrayStatistics.QuantileCustomInplace(array, tau, definition)); }