Trait Stats
trait Stats
Trait that provides simple descriptive statistics on a univariate set of numeric samples.
Required Methods
fn sum(self: &Self) -> f64Sum of the samples.
Note: this method sacrifices performance at the altar of accuracy Depends on IEEE 754 arithmetic guarantees. See proof of correctness at: "Adaptive Precision Floating-Point Arithmetic and Fast Robust Geometric Predicates"
fn min(self: &Self) -> f64Minimum value of the samples.
fn max(self: &Self) -> f64Maximum value of the samples.
fn mean(self: &Self) -> f64Arithmetic mean (average) of the samples: sum divided by sample-count.
fn median(self: &Self) -> f64Median of the samples: value separating the lower half of the samples from the higher half. Equal to
self.percentile(50.0).fn var(self: &Self) -> f64Variance of the samples: bias-corrected mean of the squares of the differences of each sample from the sample mean. Note that this calculates the sample variance rather than the population variance, which is assumed to be unknown. It therefore corrects the
(n-1)/nbias that would appear if we calculated a population variance, by dividing by(n-1)rather thann.fn std_dev(self: &Self) -> f64Standard deviation: the square root of the sample variance.
Note: this is not a robust statistic for non-normal distributions. Prefer the
median_abs_devfor unknown distributions.fn std_dev_pct(self: &Self) -> f64Standard deviation as a percent of the mean value. See
std_devandmean.Note: this is not a robust statistic for non-normal distributions. Prefer the
median_abs_dev_pctfor unknown distributions.fn median_abs_dev(self: &Self) -> f64Scaled median of the absolute deviations of each sample from the sample median. This is a robust (distribution-agnostic) estimator of sample variability. Use this in preference to
std_devif you cannot assume your sample is normally distributed. Note that this is scaled by the constant1.4826to allow its use as a consistent estimator for the standard deviation.See: https://en.wikipedia.org/wiki/Median_absolute_deviation
fn median_abs_dev_pct(self: &Self) -> f64Median absolute deviation as a percent of the median. See
median_abs_devandmedian.fn percentile(self: &Self, pct: f64) -> f64Percentile: the value below which
pctpercent of the values inselffall. For example, percentile(95.0) will return the valuevsuch that 95% of the samplessinselfsatisfys <= v.Calculated by linear interpolation between closest ranks.
fn quartiles(self: &Self) -> (f64, f64, f64)Quartiles of the sample: three values that divide the sample into four equal groups, each with 1/4 of the data. The middle value is the median. See
medianandpercentile. This function may calculate the 3 quartiles more efficiently than 3 calls topercentile, but is otherwise equivalent.See also: https://en.wikipedia.org/wiki/Quartile
fn iqr(self: &Self) -> f64Inter-quartile range: the difference between the 25th percentile (1st quartile) and the 75th percentile (3rd quartile). See
quartiles.
Implementors
impl Stats for [f64]