Movatterモバイル変換


[0]ホーム

URL:


Docs.rs

Crateaverage

Source
Expand description

This crate provides estimators for statistics on a sequence of numbers. Thetypical workflow looks like this:

  1. If necessary, build your custom estimator usingconcatenate ordefine_moments.
  2. Initialize the estimator of your choice withnew().
  3. Add some subset (called “sample”) of the sequence of numbers (called“population”) for which you want to estimate the statistic, usingadd()orcollect().
  4. Calculate the statistic withmean() or similar.

You can run several estimators in parallel and merge them into one withmerge().

Everything is calculated iteratively in a single pass using constant memory,so the sequence of numbers can be an iterator. The used algorithms try toavoid numerical instabilities.

If you wantSerde support,include"serde" in your list of features.

Note that deserializing does not currently check for all invalid inputs.For example, if you deserialize a corruptedVariance it may returna negative value for variance, even though that is mathematically impossible.In a future minor release some of these checks may be added.

§Example

useaverage::{MeanWithError, Estimate};letmuta: MeanWithError = (1..6).map(f64::from).collect();a.add(42.);println!("The mean is {} ± {}.", a.mean(), a.error());

§Estimators

§Estimating several statistics at once

The estimators are designed to have minimal state. The recommended way tocalculate several of them at once is to create a struct with all theestimators you need. You can then implementadd for your struct byforwarding to the underlying estimators. Everything is inlined, so thereshould be no overhead.

You can avoid the boilerplate code by using theconcatenate macro.

Note that calculating moments requires calculating the lower moments, so youonly need to include the highest moment in your struct.

§Calculating histograms

Thedefine_histogram macro can be used to define a histogram struct thatuses constant memory. SeeHistogram10 (defined usingdefine_histogram!(..., 10)) and the extension traitHistogramfor the methods available to the generated struct.

Macros§

assert_almost_eq
Assert that two numbers are almost equal to each other.
concatenate
Concatenate several iterative estimators into one.
define_histogram
Define a histogram with a number of bins known at compile time.
define_moments
Define an estimator of all moments up to a number given at compile time.
impl_extend
ImplementExtend<f64> for an iterative estimator.
impl_from_iterator
ImplementFromIterator<f64> for an iterative estimator.
impl_from_par_iterator
ImplementFromParallelIterator<f64> for an iterative estimator.

Structs§

Covariance
Estimate the arithmetic means and the covariance of a sequence of number pairs(“population”).
Histogram10
A histogram with a number of bins known at compile time.
Kurtosisstd orlibm
Estimate the arithmetic mean, the variance, the skewness and the kurtosis ofa sequence of numbers (“population”).
Max
Estimate the maximum of a sequence of numbers (“population”).
Mean
Estimate the arithmetic mean of a sequence of numbers (“population”).
Min
Estimate the minimum of a sequence of numbers (“population”).
Moments4
Estimate the first N moments of a sequence of numbers (“population”).
Quantilestd orlibm
Estimate the p-quantile of a sequence of numbers (“population”).
SampleOutOfRangeError
A sample is out of range of the histogram.
Skewnessstd orlibm
Estimate the arithmetic mean, the variance and the skewness of a sequence ofnumbers (“population”).
Variance
Estimate the arithmetic mean and the variance of a sequence of numbers(“population”).
WeightedMean
Estimate the weighted and unweighted arithmetic mean of a sequence ofnumbers (“population”).
WeightedMeanWithError
Estimate the weighted and unweighted arithmetic mean and the unweightedvariance of a sequence of numbers (“population”).

Enums§

InvalidRangeError
Invalid ranges were specified for constructing the histogram.

Traits§

Estimate
Estimate a statistic of a sequence of numbers (“population”).
Histogram
Get the bins and ranges from a histogram.
Merge
Merge with another estimator.

Type Aliases§

MeanWithError
Alias forVariance.

[8]ページ先頭

©2009-2025 Movatter.jp